Function at 0x568910
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x72f032
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x11c
push ebx
push ebp
mov ebp, ecx
mov cx, word [ebp + 8]
mov al, byte [ebp + 0x5b7]
push esi
mov word [ebp + 0xa], cx
push edi
mov ecx, ebp
mov byte [esp + 0x1f], al
mov byte [esp + 0x13], 0
call fcn.00561a20
mov al, byte [ebp + 0xdd]
cmp al, 0x13
je 0x56a084
cmp al, 0x12
je 0x56a084
mov edx, dword [0x7c67dc]
mov ecx, dword [edx + 0x4c]
push 1
push 0
call fcn.00406780
mov esi, eax
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x4c]
push 2
push 0
call fcn.00406780
mov ebx, eax
mov al, byte [0x7d16dc]
test al, al
je 0x568999
xor esi, esi
jmp 0x5689bc
test esi, esi
jle 0x5689aa
mov ecx, dword [0x7c67dc]
mov ecx, dword [ecx + 0x4c]
push 3
jmp 0x5689b7
jge 0x5689bc
mov edx, dword [0x7c67dc]
mov ecx, dword [edx + 0x4c]
push 2
call fcn.00406ce0
mov eax, ebx
cdq
mov edi, eax
xor edi, edx
mov eax, esi
sub edi, edx
cdq
mov esi, eax
xor esi, edx
sub esi, edx
cmp edi, esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], esi
jge 0x5689ef
fild dword [esp + 0x20]
mov eax, dword [ebp + 0x244]
fmul dword [0x7465e4]
fstp dword [eax + 0x34]
jmp 0x568a38
test ebx, ebx
je 0x568a2b
jge 0x568a02
mov ecx, dword [0x7c67dc]
mov ecx, dword [ecx + 0x4c]
push 0
jmp 0x568a11
test ebx, ebx
jle 0x568a16
mov edx, dword [0x7c67dc]
mov ecx, dword [edx + 0x4c]
push 1
call fcn.00406ce0
fild dword [esp + 0x14]
mov eax, dword [ebp + 0x244]
fmul dword [0x7465e4]
fstp dword [eax + 0x34]
jmp 0x568a38
mov ecx, dword [ebp + 0x244]
mov dword [ecx + 0x34], 0x3f800000
mov ecx, dword [ebp + 0x244]
fld dword [ecx + 0x34]
fcomp dword [0x746470]
fnstsw ax
test ah, 0x41
jne 0x568a55
mov dword [ecx + 0x34], 0x3f800000
cmp esi, 0x62
jg 0x568a5f
cmp edi, 0x62
jle 0x568a6f
mov edx, dword [0x7c67dc]
mov ecx, dword [edx + 0x4c]
push 9
call fcn.00406ce0
mov al, byte [ebp + 0x5b0]
test al, al
jne 0x568ad5
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x4c]
push 2
push 0xa
call fcn.00406f40
test eax, eax
je 0x568aa4
mov al, byte [ebp + 0x5b7]
test al, al
sete cl
mov byte [ebp + 0x5b7], cl
mov byte [esp + 0x13], 1
mov al, byte [ebp + 0x5b0]
test al, al
jne 0x568ad5
mov edx, dword [0x7c67dc]
mov ecx, dword [edx + 0x4c]
push 2
push 0xb
call fcn.00406f40
test eax, eax
je 0x568ad5
mov al, byte [ebp + 0x5b8]
test al, al
sete al
mov byte [ebp + 0x5b8], al
mov al, byte [ebp + 0x5b8]
test al, al
je 0x568b4d
mov ecx, dword [0x7c67dc]
mov ecx, dword [ecx + 0x4c]
push 2
push 0
call fcn.00406f40
test eax, eax
jne 0x568b46
mov edx, dword [0x7c67dc]
mov ecx, dword [edx + 0x4c]
push 2
push 1
call fcn.00406f40
test eax, eax
jne 0x568b46
push 1
push eax
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x4c]
call fcn.00406f40
test eax, eax
jne 0x568b46
mov ecx, dword [0x7c67dc]
mov ecx, dword [ecx + 0x4c]
push 1
push 1
call fcn.00406f40
test eax, eax
jne 0x568b46
mov edx, dword [0x7c67dc]
mov ecx, dword [edx + 0x4c]
push eax
call fcn.00406ce0
jmp 0x568b4d
mov byte [ebp + 0x5b8], 0
mov al, byte [ebp + 0x5b0]
test al, al
jne 0x568b94
xor eax, eax
mov ax, word [ebp + 8]
shr eax, 0xd
test al, 1
jne 0x568b8c
mov ecx, dword [0x7c67dc]
mov ecx, dword [ecx + 0x4c]
push 1
push 9
call fcn.00406f40
test eax, eax
je 0x568b8c
mov al, byte [ebp + 0x5b7]
test al, al
sete byte [esp + 0x1f]
mov byte [esp + 0x13], 1
mov al, byte [ebp + 0x5b0]
test al, al
mov edi, dword [sym.imp.MSVCRT.dll_sprintf]
jne 0x568c2b
mov edx, dword [0x7c67dc]
mov ecx, dword [edx + 0x4c]
push 2
push 0xd
call fcn.00406f40
test eax, eax
je 0x568c2b
mov ecx, ebp
call fcn.005567d0
test al, al
jne 0x568c2b
mov ecx, ebp
call fcn.00527580
test al, al
je 0x568c2b
mov eax, dword [ebp + 0x348]
test eax, eax
jg 0x568c2b
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov eax, dword [eax + 0x10]
shr eax, 0xa
test al, 1
je 0x568c1f
mov ecx, 0x7cb478
call fcn.004d51b0
mov ecx, dword [0x7c67dc]
push 0x24e
mov esi, eax
call fcn.0040f930
push eax
push 0x775998
push esi
call edi
push 1
push 0
push esi
call fcn.005f90c0
add esp, 0x18
jmp 0x568c2b
mov ecx, ebp
call fcn.0056c090
mov byte [esp + 0x13], 1
mov al, byte [ebp + 0x5b0]
test al, al
jne 0x568df7
mov ecx, dword [0x7c67dc]
mov ecx, dword [ecx + 0x4c]
push 2
push 0xe
call fcn.00406f40
test eax, eax
je 0x568cc5
mov ecx, ebp
call fcn.005567d0
test al, al
jne 0x568cc5
mov ecx, ebp
call fcn.00527580
test al, al
je 0x568cc5
mov eax, dword [ebp + 0x348]
test eax, eax
jg 0x568cc5
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov edx, dword [eax + 0x10]
shr edx, 0xa
test dl, 1
je 0x568cb9
mov ecx, 0x7cb478
call fcn.004d51b0
mov ecx, dword [0x7c67dc]
push 0x24e
mov esi, eax
call fcn.0040f930
push eax
push 0x775998
push esi
call edi
push 1
push 0
push esi
call fcn.005f90c0
add esp, 0x18
jmp 0x568cc5
mov ecx, ebp
call fcn.0056c2a0
mov byte [esp + 0x13], 1
mov al, byte [ebp + 0x5b0]
test al, al
jne 0x568df7
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x4c]
push 2
push 0xf
call fcn.00406f40
test eax, eax
je 0x568d5e
mov ecx, ebp
call fcn.005567d0
test al, al
jne 0x568d5e
mov ecx, ebp
call fcn.00527580
test al, al
je 0x568d5e
mov eax, dword [ebp + 0x348]
test eax, eax
jg 0x568d5e
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov ecx, dword [eax + 0x10]
shr ecx, 0xa
test cl, 1
je 0x568d52
mov ecx, 0x7cb478
call fcn.004d51b0
mov ecx, dword [0x7c67dc]
push 0x24e
mov esi, eax
call fcn.0040f930
push eax
push 0x775998
push esi
call edi
push 1
push 0
push esi
call fcn.005f90c0
add esp, 0x18
jmp 0x568d5e
mov ecx, ebp
call fcn.0056c4e0
mov byte [esp + 0x13], 1
mov al, byte [ebp + 0x5b0]
test al, al
jne 0x568df7
mov edx, dword [0x7c67dc]
mov ecx, dword [edx + 0x4c]
push 2
push 0x10
call fcn.00406f40
test eax, eax
je 0x568df7
mov ecx, ebp
call fcn.005567d0
test al, al
jne 0x568df7
mov ecx, ebp
call fcn.00527580
test al, al
je 0x568df7
mov eax, dword [ebp + 0x348]
test eax, eax
jg 0x568df7
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov eax, dword [eax + 0x10]
shr eax, 0xa
test al, 1
je 0x568deb
mov ecx, 0x7cb478
call fcn.004d51b0
mov ecx, dword [0x7c67dc]
push 0x24e
mov esi, eax
call fcn.0040f930
push eax
push 0x775998
push esi
call edi
push 1
push 0
push esi
call fcn.005f90c0
add esp, 0x18
jmp 0x568df7
mov ecx, ebp
call fcn.0056c690
mov byte [esp + 0x13], 1
mov ecx, dword [0x7c67dc]
mov edx, dword [ecx + 0xc0]
fld dword [edx + 0x34]
fcomp dword [0x7464b8]
fnstsw ax
test ah, 0x40
je 0x568ee1
mov ebx, 0x16
mov al, byte [ebp + 0x5b0]
test al, al
jne 0x568ed7
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x4c]
push 2
push ebx
call fcn.00406f40
test eax, eax
je 0x568ed7
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov ecx, dword [eax + 0x10]
shr ecx, 0xa
test cl, 1
je 0x568e8c
mov ecx, 0x7cb478
call fcn.004d51b0
mov ecx, dword [0x7c67dc]
push 0x24e
mov esi, eax
call fcn.0040f930
push eax
push 0x775998
push esi
call edi
push 1
push 0
push esi
call fcn.005f90c0
add esp, 0x18
jmp 0x568ed7
mov ecx, ebp
call fcn.005567d0
test al, al
jne 0x568eb7
mov ecx, ebp
call fcn.00527580
test al, al
je 0x568eb7
mov eax, dword [ebp + 0x348]
test eax, eax
jg 0x568eb7
push ebx
call fcn.006085c0
add esp, 4
jmp 0x568ed7
xor ecx, ecx
mov eax, 0x7d5598
cmp dword [eax], 0
je 0x568ed0
add eax, 4
inc ecx
cmp eax, 0x7d55a8
jl 0x568ebe
jmp 0x568ed7
mov dword [ecx*4 + 0x7d5598], ebx
inc ebx
cmp ebx, 0x1f
jle 0x568e1c
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov edx, dword [eax + 0x10]
shr edx, 0xa
test dl, 1
jne 0x568efc
call fcn.00608b30
mov al, byte [ebp + 0x5b0]
test al, al
jne 0x56904b
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x4c]
push 1
push 0
call fcn.00406f40
test eax, eax
je 0x568f45
mov ecx, ebp
call fcn.005567d0
test al, al
jne 0x568f41
mov ecx, dword [0x7c67dc]
mov al, byte [ecx + 0xe2]
test al, al
jne 0x568f41
mov byte [ebp + 0xe0], 3
or byte [ebp + 8], 1
mov al, byte [ebp + 0x5b0]
test al, al
jne 0x56904b
mov edx, dword [0x7c67dc]
mov ecx, dword [edx + 0x4c]
push 1
push 1
call fcn.00406f40
test eax, eax
je 0x568f8e
or byte [ebp + 8], 2
mov ecx, ebp
call fcn.005567d0
test al, al
jne 0x568f8e
mov eax, dword [0x7c67dc]
mov cl, byte [eax + 0xe2]
test cl, cl
jne 0x568f8e
mov byte [ebp + 0xe0], 3
mov al, byte [ebp + 0x5b0]
test al, al
jne 0x56904b
mov ecx, dword [0x7c67dc]
mov ecx, dword [ecx + 0x4c]
push 1
push 2
call fcn.00406f40
test eax, eax
je 0x568fef
or byte [ebp + 8], 4
mov ecx, ebp
call fcn.005567d0
test al, al
jne 0x568fef
mov edx, dword [0x7c67dc]
mov al, byte [edx + 0xe2]
test al, al
jne 0x568fef
mov al, byte [ebp + 0xe0]
cmp al, 3
jne 0x568fe4
mov byte [ebp + 0xe0], 2
jmp 0x568fef
test al, al
jne 0x568fef
mov byte [ebp + 0xe0], 1
mov al, byte [ebp + 0x5b0]
test al, al
jne 0x56904b
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x4c]
push 1
push 3
call fcn.00406f40
test eax, eax
je 0x56904b
or byte [ebp + 8], 8
mov ecx, ebp
call fcn.005567d0
test al, al
jne 0x56904b
mov ecx, dword [0x7c67dc]
mov al, byte [ecx + 0xe2]
test al, al
jne 0x56904b
mov al, byte [ebp + 0xe0]
cmp al, 3
jne 0x569040
mov byte [ebp + 0xe0], 2
jmp 0x56904b
test al, al
jne 0x56904b
mov byte [ebp + 0xe0], 1
xor eax, eax
mov ax, word [ebp + 8]
test al, 0xf
je 0x569077
mov edx, eax
shr edx, 0xd
test dl, 1
jne 0x569077
mov cl, byte [esp + 0x1f]
test cl, cl
je 0x56906e
or eax, 0x200
jmp 0x569073
or eax, 0x100
mov word [ebp + 8], ax
mov ecx, ebp
call fcn.005567d0
test al, al
jne 0x5690b6
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0xec]
and eax, 0xff
cmp dword [eax*4 + 0x78b0a8], 3
jne 0x5690a5
mov byte [ebp + 0xe0], 4
jmp 0x5690b6
mov al, byte [ebp + 0xe0]
test al, al
jne 0x5690b6
mov byte [ebp + 0xe0], 2
mov ecx, dword [0x7c67dc]
mov eax, dword [ebp + 0x14]
mov ecx, dword [ecx + 0x4c]
mov esi, dword [eax + 0x10]
push 1
call fcn.00406a50
mov edx, dword [0x7c67dc]
mov ecx, dword [edx + 0x4c]
push 2
mov dword [esp + 0x1c], eax
call fcn.00406a50
mov ecx, dword [0x7c67dc]
mov ecx, dword [ecx + 0x4c]
mov ebx, eax
movsx eax, byte [0x7b2181]
push eax
push 0
call fcn.00406780
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fmul dword [0x746ccc]
call sub.MSVCRT.dll__ftol
movsx edx, byte [0x7b2180]
mov ecx, dword [esp + 0x18]
add ecx, eax
mov eax, dword [0x7c67dc]
push edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x4c]
push 0
call fcn.00406780
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fmul dword [0x746ccc]
call sub.MSVCRT.dll__ftol
add ebx, eax
mov al, byte [0x7d16dc]
test al, al
mov dword [esp + 0x20], ebx
je 0x5691f8
mov ecx, dword [0x7c67dc]
mov ecx, dword [ecx + 0x4c]
push 1
push 0
call fcn.00406780
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul dword [0x746ccc]
call sub.MSVCRT.dll__ftol
mov edx, dword [esp + 0x18]
mov bx, word [ebp + 8]
add edx, eax
mov dword [esp + 0x18], edx
mov dl, bl
shr dl, 3
test dl, 1
je 0x5691be
mov eax, dword [0x7c67dc]
fld dword [eax + 0x2c]
fmul dword [eax + 0xe8]
fmul dword [0x74b298]
call sub.MSVCRT.dll__ftol
mov ecx, dword [esp + 0x18]
add ecx, eax
and ebx, 0xfff7
mov dword [esp + 0x18], ecx
mov word [ebp + 8], bx
mov bx, word [ebp + 8]
mov al, bl
shr al, 2
test al, 1
je 0x5691f8
mov eax, dword [0x7c67dc]
fld dword [eax + 0x2c]
fmul dword [eax + 0xe8]
fmul dword [0x74b294]
call sub.MSVCRT.dll__ftol
mov ecx, dword [esp + 0x18]
add ecx, eax
and ebx, 0xfffb
mov dword [esp + 0x18], ecx
mov word [ebp + 8], bx
xor eax, eax
mov al, byte [ebp + 0xdd]
cmp eax, 1
je 0x569211
cmp eax, 0xd
jle 0x56923e
cmp eax, 0xf
jle 0x56921f
jmp 0x56923e
mov al, byte [ebp + 0xe2]
cmp al, 0x23
je 0x56921f
cmp al, 0x22
jne 0x56923e
mov byte [ebp + 0xe0], 0
mov edx, dword [ebp]
and word [ebp + 8], 0x7ff
push 0
mov ecx, ebp
mov dword [esp + 0x1c], 0
call dword [edx + 0x74]
mov ecx, dword [ebp + 0x244]
lea eax, [esp + 0xc0]
push eax
call fcn.0053f100
mov eax, dword [ebp + 0x244]
add eax, 0x70
push eax
lea ecx, [esp + 0x7c]
call fcn.006e7cd0
mov al, byte [ebp + 0x5b2]
test al, al
jne 0x5694a8
mov ecx, dword [0x7c67dc]
mov ecx, dword [ecx + 0x4c]
push 1
push 0x11
call fcn.00406f40
test eax, eax
jne 0x5694a8
mov eax, dword [esp + 0x18]
test eax, eax
je 0x56939a
fild dword [esp + 0x18]
mov edx, dword [0x7c67dc]
mov ecx, dword [ebp + 0x244]
mov eax, dword [ecx + 0x34]
fmul dword [edx + 0xec]
mov edx, 0x3f800000
cmp eax, edx
fstp dword [esp + 0x14]
je 0x5692d7
fld dword [esp + 0x14]
fabs
fcomp dword [0x74b290]
fnstsw ax
test ah, 0x41
je 0x5692d7
test byte [ebp + 0xa], 0x30
je 0x56933a
fld dword [esp + 0x14]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
je 0x5692ee
or byte [ebp + 8], 0x10
jmp 0x569303
fld dword [esp + 0x14]
fcomp dword [0x746468]
fnstsw ax
test ah, 0x41
jne 0x569303
or byte [ebp + 8], 0x20
test byte [ebp + 8], 0xf
jne 0x56933a
cmp dword [ecx + 0x34], edx
jne 0x56933a
fld dword [esp + 0x14]
fabs
fmul dword [0x74b28c]
fstp dword [ecx + 0x34]
mov ecx, dword [ebp + 0x244]
fld dword [ecx + 0x34]
fcomp dword [0x746cbc]
fnstsw ax
test ah, 1
jne 0x56933a
mov dword [ecx + 0x34], 0x3fc00000
mov eax, dword [esp + 0x14]
push eax
lea ecx, [esp + 0xa0]
call fcn.006e7da0
lea ecx, [esp + 0xc0]
push ecx
lea edx, [esp + 0xe8]
push edx
lea ecx, [esp + 0xa4]
call fcn.006e80a0
push eax
lea ecx, [esp + 0xc4]
call fcn.006e7cd0
lea eax, [esp + 0xc0]
push eax
lea ecx, [esi + 0x2c]
call fcn.006e93d0
mov eax, dword [ebp + 0x244]
lea ecx, [esp + 0xc0]
push ecx
lea ecx, [eax + 0x4c]
call fcn.006e7cd0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x56949d
mov cl, byte [0x7d16dd]
test cl, cl
je 0x5693b6
neg eax
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
mov edx, dword [0x7c67dc]
lea ecx, [esp + 0x9c]
fmul dword [edx + 0xe8]
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
push eax
call fcn.006e7d20
lea ecx, [esp + 0x9c]
push ecx
lea edx, [esp + 0xe8]
push edx
lea ecx, [esp + 0x80]
call fcn.006e80a0
push eax
lea ecx, [esp + 0x7c]
call fcn.006e7cd0
fld dword [esp + 0x98]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
je 0x569451
fld dword [esp + 0x14]
push ecx
fchs
lea ecx, [esp + 0xa0]
fstp dword [esp]
call fcn.006e7d20
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0xe8]
push ecx
lea ecx, [esp + 0x80]
call fcn.006e80a0
push eax
lea ecx, [esp + 0x7c]
call fcn.006e7cd0
sub esp, 0x24
lea edx, [esp + 0x9c]
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
call fcn.006e7cd0
mov ecx, dword [ebp + 0x244]
call fcn.0045e9b0
mov eax, dword [esp + 0x94]
mov ecx, dword [ebp + 0x14]
push eax
call fcn.004e4ce0
mov ecx, eax
call fcn.0046fd70
mov ecx, dword [ebp + 0x660]
push 0
call fcn.004e4ce0
mov ecx, eax
call fcn.0046fd70
mov ecx, dword [ebp + 0x244]
mov edx, dword [ecx]
call dword [edx + 0xc]
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x10c]
push ecx
lea ecx, [esp + 0xc8]
call fcn.006e80a0
mov esi, dword [ebp + 0x14]
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x78]
push ecx
lea ecx, [esp + 0x114]
add esi, 0x28
call fcn.006e8c50
mov edx, dword [esp + 0x24]
mov dword [esi + 0xc], edx
mov ecx, dword [esi + 4]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov edx, dword [esi + 8]
mov dword [eax + 4], edx
mov ecx, dword [esi + 0xc]
lea edx, [esp + 0x34]
mov dword [esp + 0x20], esp
mov dword [eax + 8], ecx
mov ecx, dword [ebp + 0x14]
push edx
call fcn.004e59a0
mov al, byte [ebp + 0x5b0]
test al, al
jne 0x5696f2
mov al, byte [ebp + 0x5b5]
test al, al
jne 0x569628
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x4c]
push 2
push 6
call fcn.00406f40
test eax, eax
je 0x569628
mov ecx, ebp
call fcn.005567d0
call fcn.00745a10
cmp al, 0xff
je 0x56957a
test al, al
jne 0x569628
nop
mov byte [ebp + 0x5be], 0
mov cl, byte [ebp + 0x5bd]
test cl, cl
sete cl
test cl, cl
mov byte [ebp + 0x5bd], cl
jne 0x56959b
mov eax, dword [ebp + 0x388]
test eax, eax
je 0x56959b
mov ecx, dword [eax]
push 0
push 1
push ecx
mov ecx, dword [0x7c67dc]
call fcn.00411050
jmp 0x569623
mov edx, dword [ebp + 0x10]
shr edx, 0xa
test dl, 1
je 0x569623
test cl, cl
je 0x569623
mov eax, dword [ebp + 0x388]
test eax, eax
jne 0x569623
call dword [sym.imp.MSVCRT.dll_rand]
cdq
mov ecx, 5
idiv ecx
inc edx
push edx
lea edx, [esp + 0xe8]
push str.WolfEquip_d
push edx
call edi
mov eax, dword [0x7c67dc]
mov eax, dword [eax + 0x34]
xor edx, edx
mov dl, byte [eax + 0x290]
xor ecx, ecx
mov cl, byte [eax + 0x298]
mov eax, 0x10624dd3
add esp, 0xc
push 0
push 0x3f800000
imul ecx, edx
imul ecx
mov ecx, dword [ebp + 0x14]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
push 0
push ecx
mov ecx, dword [0x7c67e0]
lea edx, [esp + 0xf8]
push edx
call fcn.0048bcb0
mov byte [esp + 0x13], 1
mov al, byte [ebp + 0x5b0]
test al, al
jne 0x5696f2
mov al, byte [ebp + 0x5b6]
test al, al
jne 0x5696f2
mov ecx, ebp
call fcn.005567d0
test al, al
jne 0x5696f2
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x4c]
push 2
push 0x25
call fcn.00406f40
test eax, eax
je 0x5696f2
mov al, byte [ebp + 0x37c]
test al, al
jne 0x569681
mov ecx, dword [ebp + 0x10]
shr ecx, 0xe
test cl, 1
je 0x5696f2
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov edx, dword [eax + 0x10]
shr edx, 0xa
test dl, 1
je 0x5696cb
mov ecx, 0x7cb478
call fcn.004d51b0
mov ecx, dword [0x7c67dc]
push 0x24e
mov esi, eax
call fcn.0040f930
push eax
push 0x775998
push esi
call edi
push 1
push 0
push esi
call fcn.005f90c0
add esp, 0x18
jmp 0x5696f2
mov al, byte [ebp + 0x5bd]
test al, al
je 0x5696dc
mov byte [ebp + 0x5bd], 0
mov al, byte [ebp + 0x5be]
test al, al
sete al
mov byte [ebp + 0x5be], al
mov byte [esp + 0x13], 1
mov al, byte [ebp + 0xdd]
test al, al
jne 0x569781
mov ecx, dword [ebp + 0x10]
mov eax, ecx
shr eax, 0xd
and al, 1
je 0x56971f
mov dl, byte [ebp + 0x5bd]
test dl, dl
jne 0x56971f
mov byte [ebp + 0xdd], 9
jmp 0x569745
test al, al
jne 0x569745
mov al, byte [ebp + 0x5bd]
test al, al
je 0x569745
shr ecx, 0xe
test cl, 1
je 0x56973e
mov byte [ebp + 0x5be], 0
jmp 0x569745
mov byte [ebp + 0xdd], 8
mov al, byte [ebp + 0xdd]
test al, al
jne 0x569781
mov eax, dword [ebp + 0x10]
shr eax, 0xe
and al, 1
je 0x56976c
mov cl, byte [ebp + 0x5be]
test cl, cl
jne 0x56976c
mov byte [ebp + 0xdd], 0xd
jmp 0x569781
test al, al
jne 0x569781
mov al, byte [ebp + 0x5be]
test al, al
je 0x569781
mov byte [ebp + 0xdd], 0xc
mov al, byte [ebp + 0x5b0]
test al, al
jne 0x569e15
xor eax, eax
mov ax, word [ebp + 8]
mov ecx, eax
shr ecx, 0xd
test cl, 1
jne 0x5697f7
shr eax, 0xb
test al, 1
jne 0x5697f7
mov ecx, ebp
call fcn.00527580
test al, al
je 0x5697f7
mov edx, dword [0x7c67dc]
mov ecx, dword [edx + 0x4c]
push 2
push 8
call fcn.00406f40
test eax, eax
mov ecx, dword [ebp + 8]
je 0x5697d1
mov byte [esp + 0x13], 1
not ecx
test ecx, 0x4000000
je 0x5697f7
nop
nop
nop
xor ecx, ecx
mov cx, word [ebp + 8]
nop
nop
nop
nop
nop
and ecx, 0xfdff
or ecx, 0x500
mov word [ebp + 8], cx
mov al, byte [ebp + 0x5b0]
test al, al
jne 0x569e15
mov ecx, ebp
call fcn.005567d0
test al, al
jne 0x569e15
cmp byte [ebp + 0xdd], 1
je 0x569e15
mov ecx, ebp
call fcn.005275d0
test al, al
jne 0x569e15
mov ecx, ebp
call fcn.005275f0
test al, al
jne 0x569e15
mov edx, dword [ebp + 0x10]
shr edx, 0xe
test dl, 1
jmp 0x56984e
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x4c]
push 2
push 7
call fcn.00406f40
test eax, eax
je 0x569989
xor eax, eax
mov al, byte [ebp + 0x37c]
mov byte [esp + 0x13], 1
dec eax
je 0x56994c
dec eax
je 0x5698b7
dec eax
jne 0x56996f
mov ecx, dword [ebp + 0x380]
test ecx, ecx
lea eax, [ebp + 0x380]
je 0x56996f
mov edx, dword [ebp + 0x14]
lea ecx, [ebp + 0x378]
push ecx
push eax
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x70]
push edx
call fcn.00454a60
jmp 0x56996f
lea esi, [ebp + 0x380]
test esi, esi
je 0x56996f
mov ecx, dword [esi]
test ecx, ecx
je 0x56996f
mov edx, dword [ecx]
call dword [edx + 0xd0]
cmp byte [eax + 0x2c], 1
je 0x569920
mov eax, dword [ebp + 0x14]
mov ecx, dword [0x7c67dc]
mov ecx, dword [ecx + 0x70]
lea ebx, [ebp + 0x378]
push ebx
push esi
push eax
call fcn.00454a60
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 0xd0]
mov cl, byte [eax + 0x2c]
test cl, cl
je 0x569920
mov eax, dword [ebp + 0x384]
mov ecx, dword [ebx]
mov edx, dword [esi]
push eax
push ecx
mov ecx, dword [0x7c67dc]
push edx
call fcn.00410790
mov esi, dword [esi]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xd0]
mov cl, byte [eax + 0x2c]
test cl, cl
jne 0x56996f
push 1
push 0
mov ecx, ebp
call fcn.0052b220
mov byte [ebp + 0x5be], 0
call fcn.005e4500
jmp 0x56996f
mov eax, dword [ebp + 0x14]
mov edx, dword [0x7c67dc]
lea ecx, [ebp + 0x378]
push ecx
mov ecx, dword [edx + 0x70]
push 0
push eax
call fcn.00454a60
test eax, eax
je 0x569e7d
mov ecx, dword [ebp + 0x244]
call fcn.007459a0
mov dword [ebp + 0x5e4], 0x40000000
jmp 0x569e7d
mov eax, dword [ebp + 0x10]
shr eax, 0xd
test al, 1
je 0x569e0c
mov ecx, dword [0x7c67dc]
mov ecx, dword [ecx + 0x4c]
push 2
push 4
call fcn.00406f40
test eax, eax
jne 0x5699c7
mov edx, dword [0x7c67dc]
mov ecx, dword [edx + 0x4c]
push 1
push 4
call fcn.00406f40
test eax, eax
je 0x569e0c
mov eax, dword [ebp + 0x388]
test eax, eax
mov byte [esp + 0x13], 1
je 0x569db5
mov ecx, dword [eax]
add ecx, 4
call fcn.004ee8b0
cmp eax, 0x4f4d4d41
jg 0x569d78
je 0x569d83
cmp eax, 0x424f5250
je 0x569a07
cmp eax, 0x4b434f4c
jne 0x569e7d
mov eax, dword [0x7c6cdc]
mov ecx, dword [eax + 0xec]
test ecx, ecx
je 0x569d6c
mov eax, dword [ebp + 0x388]
mov edx, dword [eax + 4]
mov eax, dword [eax]
push edx
push eax
call fcn.004eb0d0
test al, al
je 0x569d6c
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov ecx, eax
call fcn.0052d200
mov eax, dword [ebp + 0x388]
mov edx, dword [eax + 4]
mov ecx, dword [0x7c6cdc]
mov eax, dword [eax]
mov esi, dword [ecx + 0xec]
push edx
push eax
push ebp
mov ecx, esi
call fcn.004eb160
mov ecx, esi
call fcn.004e5460
mov esi, eax
test esi, esi
mov dword [esp + 0x14], esi
je 0x569c6e
mov eax, dword [esi + 4]
test eax, eax
je 0x569c6e
mov ecx, ebp
call fcn.00521610
mov ecx, dword [esi + 4]
add ecx, 4
mov ebx, eax
call fcn.004ee8b0
cmp eax, 0x5f43504e
jne 0x569ac7
mov ebx, dword [ebx + 0x6c]
cmp dword [esi + 4], ebx
je 0x569ac7
mov esi, dword [esi + 8]
test esi, esi
je 0x569afb
fld dword [esi + 0x34]
fcomp dword [0x746468]
fnstsw ax
test ah, 0x40
je 0x569c6e
jmp 0x569afb
mov ecx, dword [esi + 4]
add ecx, 4
call fcn.004ee8b0
cmp eax, 0x54434146
jne 0x569c6e
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x569afb
test byte [ecx + 0x29c], 1
je 0x569afb
call fcn.004ad880
cmp dword [esi + 8], eax
jle 0x569c6e
lea ecx, [esp + 0x34]
call fcn.0051f250
xor esi, esi
mov dword [esp + 0x134], esi
mov dword [esp + 0x5c], ebp
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], esi
fild qword [esp + 0x28]
mov ecx, ebp
mov dword [esp + 0x34], 6
fstp dword [esp + 0x38]
call fcn.0055fe60
mov ecx, dword [eax]
mov dword [esp + 0x4c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x50], edx
mov eax, dword [eax + 8]
or ecx, 0xffffffff
mov dword [esp + 0x54], eax
xor eax, eax
mov edi, str.trespass
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
push 1
push ebx
lea ecx, [esp + 0x44]
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x569b91
mov edi, dword [esp + 0x40]
mov ecx, ebx
mov edx, ecx
shr ecx, 2
mov esi, str.trespass
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], ebx
mov byte [ebx + eax], 0
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 4]
add ecx, 4
mov dword [esp + 0x60], ebp
call fcn.004ee8b0
cmp eax, 0x54434146
mov ecx, dword [esi + 4]
jne 0x569bb4
mov dword [esp + 0x64], ecx
jmp 0x569bc1
test ecx, ecx
je 0x569bc1
mov edx, dword [ecx]
call dword [edx + 0x68]
mov dword [esp + 0x64], eax
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x5c]
mov edx, dword [esp + 0x5c]
mov ecx, dword [ecx + 0x24]
push 1
push edx
call fcn.00570a60
test al, al
je 0x569bf6
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x5c]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x60]
mov ecx, dword [ecx + 0x24]
push edx
push eax
call fcn.005704b0
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx + 4]
test eax, eax
je 0x569c5a
mov esi, dword [ebp + 0x1b0]
mov edi, dword [esi + 4]
push 0x44
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
test esi, esi
mov ecx, esi
jne 0x569c1c
mov ecx, eax
test edi, edi
mov dword [eax], ecx
mov ecx, edi
jne 0x569c26
mov ecx, eax
mov dword [eax + 4], ecx
mov dword [esi + 4], eax
mov ecx, dword [eax + 4]
mov dword [ecx], eax
add eax, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], eax
test eax, eax
mov byte [esp + 0x134], 1
je 0x569c54
lea edx, [esp + 0x34]
push edx
mov ecx, eax
call fcn.0051f3a0
inc dword [ebp + 0x1b4]
lea ecx, [esp + 0x34]
mov dword [esp + 0x134], 0xffffffff
call fcn.0051f580
mov eax, dword [ebp + 0x388]
mov eax, dword [eax + 4]
test eax, eax
je 0x569d6c
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x569d6c
mov ecx, 0x7cb478
call fcn.004d51b0
mov ecx, dword [ebp + 0x388]
mov esi, dword [ecx]
mov edx, dword [0x7c67dc]
mov ecx, dword [edx + 0x2e8]
push esi
mov edi, eax
call fcn.00633e80
push 0
push eax
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x2e8]
call fcn.00632330
mov eax, dword [ebp + 0x388]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push 0
push 1
push ecx
mov ecx, dword [ebp + 0x560]
push edx
push ebp
add ecx, 0x3c
call fcn.00499550
mov eax, dword [ebp + 0x388]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [ebp + 0x14]
push ecx
mov ecx, dword [eax + 0x28]
push 1
push ebp
push 1
push edx
call fcn.00496710
mov ecx, ebp
call fcn.00528000
mov ebx, dword [ebp + 0x10]
and ebx, 0xffffdfff
push 0
mov dword [ebp + 0x388], 0
mov dword [ebp + 0x10], ebx
call fcn.005f48a0
push 0x3f000000
push 0x3f000000
push 0x3f800000
push 1
push 1
call fcn.005f5410
mov edx, dword [esi]
add esp, 0x18
mov ecx, esi
call dword [edx + 0x38]
mov ecx, dword [0x7c67dc]
push eax
push 0x230
call fcn.0040f930
push eax
push edi
call dword [sym.imp.MSVCRT.dll_sprintf]
push 1
push 0
push edi
call fcn.005f90c0
add esp, 0x18
mov byte [ebp + 0xdd], 0x10
jmp 0x569e7d
cmp eax, 0x50414557
jne 0x569e7d
cmp byte [ebp + 0xe0], 4
jne 0x569d9b
mov ecx, ebp
call fcn.00528070
test al, al
je 0x569e7d
mov eax, dword [0x7c67dc]
mov cl, byte [eax + 0xe2]
test cl, cl
je 0x569df3
cmp byte [ebp + 0xe0], 4
je 0x569df3
jmp 0x569de6
cmp byte [ebp + 0xe0], 4
jne 0x569dcd
mov ecx, ebp
call fcn.00528070
test al, al
je 0x569e7d
mov ecx, dword [0x7c67dc]
mov al, byte [ecx + 0xe2]
test al, al
je 0x569df3
cmp byte [ebp + 0xe0], 4
je 0x569df3
mov ecx, ebp
call fcn.0056b630
mov byte [ebp + 0xe0], al
mov ecx, dword [ebp + 0x244]
push 0
call fcn.005411c0
mov dword [ebp + 0x5e4], 0x40000000
jmp 0x569e7d
mov byte [ebp + 0xe0], 0
jmp 0x569e7d
cmp byte [ebp + 0xdd], 2
jne 0x569e7d
mov edx, dword [0x7c67dc]
mov ecx, dword [edx + 0x4c]
push 3
push 4
call fcn.00406f40
test eax, eax
jne 0x569e6d
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x4c]
push 1
push 4
call fcn.00406f40
test eax, eax
je 0x569e6d
mov ecx, ebp
call fcn.00521b60
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x569e5e
mov ecx, ebp
call fcn.00568780
mov ecx, dword [ebp + 0x244]
push 0
call fcn.00541460
jmp 0x569e7d
mov ecx, dword [ebp + 0x244]
mov byte [esp + 0x13], 1
call fcn.00541530
xor eax, eax
mov ax, word [ebp + 8]
mov ecx, eax
shr ecx, 0xa
test cl, 1
jne 0x569ee7
mov edx, eax
shr edx, 0xc
test dl, 1
jne 0x569ee7
mov ecx, eax
shr ecx, 0xd
test cl, 1
jne 0x569ee7
shr eax, 0xb
test al, 1
jne 0x569ee7
mov al, byte [ebp + 0x5b1]
test al, al
jne 0x569ee7
mov al, byte [ebp + 0x5b0]
test al, al
jne 0x569ee7
mov edx, dword [0x7c67dc]
mov ecx, dword [edx + 0x4c]
push 2
push 0xc
call fcn.00406f40
test eax, eax
je 0x569ee7
mov eax, dword [ebp + 0x244]
mov byte [esp + 0x13], 1
mov dword [eax + 0x9c], 1
xor ecx, ecx
mov cx, word [ebp + 8]
shr ecx, 9
test cl, 1
je 0x569f47
mov edx, dword [0x7c67e0]
mov ecx, dword [edx]
push 8
call fcn.004ba570
mov ecx, dword [ebp + 0x10]
shr ecx, 0xa
test cl, 1
jne 0x569f47
fld dword [eax + 0x1c]
mov edx, dword [0x7c67dc]
fmul dword [edx + 0x2c]
fadd dword [ebp + 0x614]
fst dword [ebp + 0x614]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
je 0x569f3e
mov dword [ebp + 0x614], 0
push 8
mov ecx, ebp
call fcn.0056bbe0
xor eax, eax
mov ax, word [ebp + 8]
mov ecx, eax
shr ecx, 0xb
test cl, 1
je 0x569fad
test al, 0xf
je 0x569fad
mov edx, dword [0x7c67e0]
mov ecx, dword [edx]
push 8
call fcn.004ba570
mov ecx, dword [ebp + 0x10]
shr ecx, 0xa
test cl, 1
jne 0x569fad
fld dword [eax + 0x20]
mov edx, dword [0x7c67dc]
fmul dword [edx + 0x2c]
fadd dword [ebp + 0x614]
fst dword [ebp + 0x614]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
je 0x569fa4
mov dword [ebp + 0x614], 0
push 8
mov ecx, ebp
call fcn.0056bbe0
mov al, byte [ebp + 0x5b0]
test al, al
jne 0x569fd1
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x4c]
push 2
push 0x11
call fcn.00406f40
test eax, eax
je 0x569fd1
mov byte [esp + 0x13], 1
test byte [ebp + 8], 0xf
jne 0x56a062
mov al, byte [ebp + 0x5b4]
test al, al
jne 0x56a062
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x56a062
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x56a062
mov al, byte [esp + 0x13]
test al, al
jne 0x56a062
mov al, byte [ebp + 0x5b0]
test al, al
jne 0x56a062
mov ecx, dword [0x7c67e0]
mov al, byte [ecx + 0xb4dd]
test al, al
jne 0x56a062
mov edx, dword [ebp + 0x244]
mov eax, dword [edx + 0xec]
test eax, eax
jne 0x56a084
mov eax, dword [0x7c67dc]
fld dword [eax + 0x2c]
push 0x3da
fadd dword [ebp + 0x688]
fstp dword [ebp + 0x688]
mov ecx, dword [0x7c67dc]
call fcn.0040f950
fcomp dword [ebp + 0x688]
fnstsw ax
test ah, 0x41
je 0x56a084
mov ecx, dword [ebp + 0x244]
push 1
jmp 0x56a07f
mov dword [ebp + 0x688], 0
mov ebp, dword [ebp + 0x244]
cmp dword [ebp + 0xec], 1
jne 0x56a084
push 0
mov ecx, ebp
call fcn.00542530
mov ecx, dword [esp + 0x12c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x128
ret