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

Disassembly:
sub esp, 0x17c
mov ecx, dword [0x1353280]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
push edi
shr eax, 0x1f
add edx, eax
push ecx
mov dword [esp + 8], edx
fild dword [esp + 8]
fstp dword [esp]
call fcn.00438765
mov ecx, dword [0x1353280]
mov eax, 0x10624dd3
add ecx, ecx
lea edi, [esp + 0x34]
imul ecx
fstp dword [esp + 0x12c]
sar edx, 6
mov eax, edx
mov ecx, 0x3b
shr eax, 0x1f
add edx, eax
xor eax, eax
push eax
push eax
push 0x1454da0
push 0x13532ac
rep stosd dword es:[edi], eax
mov dword [esp + 0x40], edx
call fcn.00437fac
mov ecx, dword [esp + 0x198]
add esp, 0x14
mov dword [esp + 0x28], 0
mov eax, dword [ecx + 0x330]
test eax, eax
jle 0x406a6b
push ebx
push ebp
push esi
mov ecx, dword [esp + 0x190]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
add eax, dword [ecx + 0x334]
and eax, 0x3ff
lea ecx, [eax + eax*2]
lea ebp, [ecx + ecx*8]
shl ebp, 1
sub ebp, eax
shl ebp, 4
add ebp, 0x127b420
mov eax, dword [ebp]
mov ebx, dword [ebp + 0x48]
mov edi, dword [ebp + 0x34]
lea ecx, [eax + eax*8]
mov dword [esp + 0x14], edi
test bl, 0x20
lea ecx, [ecx + ecx*8]
lea eax, [eax + ecx*8]
mov ecx, dword [ebp + 0x38]
mov dword [esp + 0x1c], ecx
lea esi, [eax*4 + 0xd68160]
mov dword [esp + 0x18], esi
je 0x4057c5
mov edx, dword [0x134f424]
fld dword [edx + 0x14]
fcomp dword [0x44c308]
fnstsw ax
test ah, 0x40
jne 0x406a4a
mov eax, dword [0x1395dcc]
fld dword [eax + 0x14]
fcomp dword [0x44c308]
fnstsw ax
test ah, 0x40
je 0x406a4a
mov edx, dword [esp + 0x38]
test bh, 0x10
je 0x40580f
xor eax, eax
cmp edi, eax
je 0x4057fa
dec edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov edi, eax
fild dword [esp + 0x10]
fmul qword [0x44c508]
fsubr qword [0x44c318]
fst dword [esp + 0x78]
fstp dword [ebp + 0x348]
mov dword [ebp + 0x34], eax
jmp 0x405817
mov edi, dword [ebp + 0x348]
mov dword [esp + 0x14], eax
mov dword [esp + 0x78], edi
mov dword [ebp + 0x34], eax
mov edi, eax
jmp 0x405817
mov dword [esp + 0x78], 0
xor eax, eax
mov dword [esp + 0x89], eax
test edi, 0x400
mov dword [esp + 0x8d], eax
mov byte [esp + 0x91], al
je 0x40583b
and edx, 1
jmp 0x405875
test edi, 0x800
je 0x40584b
and edx, 1
add edx, 2
jmp 0x405875
test edi, 0x1000
jne 0x405875
test edi, 0x10002000
je 0x405872
mov eax, 0x51eb851f
imul dword [0x1353280]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
jmp 0x405875
mov edx, dword [ebp + 0x2c]
test edi, 0x10000
mov dword [esp + 0x58], edx
je 0x405898
and edi, 0xfffeffff
or edi, 0x100
or ch, 4
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], ecx
test edi, 0x8000
je 0x4058b7
and edi, 0xffff7fff
or edi, 0x100
or ch, 0x10
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], ecx
fld dword [0x1353284]
fsubr qword [0x44c318]
mov eax, dword [esi + 0x6cc]
mov dword [esp + 0x68], eax
fstp dword [esp + 0x6c]
mov edx, dword [ebp + 0x34c]
test cl, 0xc0
mov dword [esp + 0x120], edx
je 0x405921
mov eax, dword [esi + 0x354]
mov dword [esp + 0x4c], eax
mov ecx, dword [esi + 0x358]
mov dword [esp + 0x50], ecx
mov edx, dword [esi + 0x35c]
mov dword [esp + 0x54], edx
mov eax, dword [esi + 0x36c]
mov dword [esp + 0x5c], eax
mov ecx, dword [esi + 0x370]
mov dword [esp + 0x60], ecx
mov edx, dword [esi + 0x374]
mov dword [esp + 0x64], edx
jmp 0x405950
lea ecx, [esp + 0x5c]
lea eax, [esi + 0x6a4]
mov edx, 3
fld dword [eax - 0x350]
fsub dword [eax]
add eax, 4
add ecx, 4
dec edx
fmul dword [0x1353284]
fadd dword [eax - 4]
fst dword [ecx - 0x14]
fstp dword [ecx - 4]
jne 0x405930
mov edx, dword [esp + 0x1c]
lea esi, [ebp + 0x290]
mov ecx, 0x23
lea edi, [esp + 0x94]
cmp edx, 0x20
rep movsd dword es:[edi], dword [esi]
jne 0x405975
mov dword [esp + 0x78], 0x3f333333
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x84], ebx
mov eax, ecx
and eax, 0x100
mov dword [esp + 0x128], eax
neg eax
sbb eax, eax
not eax
and eax, edx
test cl, 1
mov dword [esp + 0x80], eax
je 0x4059c8
mov eax, dword [esp + 0x134]
mov edx, dword [0x134fbe8]
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 0
jmp 0x405af5
test ecx, 0x800000
je 0x405a5e
mov eax, dword [0x1353280]
push ecx
cdq
sub eax, edx
mov dword [esp + 0x44], 0
sar eax, 1
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fstp dword [esp]
call fcn.00438765
fadd dword [ebp + 0x14]
push 0
lea ecx, [esp + 0x17c]
push 0
lea edx, [esp + 0x4c]
push ecx
push edx
fstp dword [esp + 0x58]
mov dword [esp + 0x5c], 0x43340000
call fcn.00437fac
lea eax, [esp + 0x194]
lea ecx, [esp + 0x188]
push eax
push ecx
lea edx, [esp + 0x68]
push 0x42800000
push edx
call fcn.00438cfd
push 0
push 0
push 0x3f800000
lea eax, [esp + 0x1b0]
push 0x42c80000
push eax
call fcn.0041b4b0
add esp, 0x38
jmp 0x405aeb
test ecx, 0x200000
je 0x405aa7
push 0x3f19999a
push 0x3f19999a
push 0x3f4ccccd
lea ecx, [esp + 0x58]
push 0x43960000
push ecx
call fcn.0041b4b0
push 0x3f800000
push 0x3f800000
push 0x3f800000
lea edx, [esp + 0x6c]
push 0x42c80000
push edx
call fcn.0041b4b0
add esp, 0x28
jmp 0x405aeb
mov eax, dword [esp + 0x18]
lea edi, [esp + 0x40]
mov ebx, 3
lea esi, [eax + 0x6b0]
mov eax, dword [0x1353284]
mov ecx, dword [esi - 0x350]
mov edx, dword [esi]
push eax
push ecx
push edx
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x138], edx
call fcn.004386cd
fstp dword [edi]
add esp, 0xc
add esi, 4
add edi, 4
dec ebx
jne 0x405aba
mov edx, dword [0x134fbe8]
mov ecx, dword [esp + 0x14]
mov esi, dword [0x1353e84]
mov eax, dword [ebp]
inc esi
cmp eax, esi
jne 0x4061f8
mov ecx, dword [ebp + 0x48]
test ch, 8
jne 0x405b24
mov ecx, dword [eax*4 + 0x1456e60]
test ecx, ecx
jne 0x405b24
xor ebx, ebx
mov dword [0x45aba4], ebx
jmp 0x405b3f
lea eax, [esp + 0x3c]
mov dword [0x1454d94], ebp
mov dword [0x1456e40], eax
mov dword [0x45aba4], 1
xor ebx, ebx
mov ecx, 0x23
lea esi, [ebp + 0x290]
mov edi, 0x1458ea0
cmp edx, 2
rep movsd dword es:[edi], dword [esi]
je 0x405b64
cmp edx, 3
je 0x405b64
cmp edx, 4
jne 0x406178
mov ecx, dword [0x1353274]
cmp edx, 3
mov dword [esp + 0x40], ecx
jne 0x405b80
mov dword [esp + 0x20], 0x40600000
jmp 0x405c1c
cmp edx, 4
jne 0x405c14
movsx edx, word [0x134fbf2]
movsx eax, word [0x134fbf4]
mov dword [esp + 0x10], edx
lea edx, [esp + 0x138]
fild dword [esp + 0x10]
movsx ecx, word [0x134fbf6]
fmul qword [0x44c350]
mov dword [esp + 0x10], eax
push edx
fstp dword [esp + 0x13c]
fild dword [esp + 0x14]
mov dword [esp + 0x14], ecx
fmul qword [0x44c350]
fstp dword [esp + 0x140]
fild dword [esp + 0x14]
fmul qword [0x44c350]
fstp dword [esp + 0x144]
call fcn.00438e60
fmul qword [0x44c500]
add esp, 4
fcom qword [0x44c318]
fnstsw ax
test ah, 0x41
jne 0x405c08
fstp st(0)
fld dword [0x44c470]
fmul qword [0x44c4f8]
fstp dword [esp + 0x20]
jmp 0x405c1c
mov dword [esp + 0x20], 0x40e00000
cmp dword [0x44e47c], 0xfffffc19
jle 0x405da2
mov eax, dword [0x134fbe8]
mov edi, 4
cmp eax, edi
jne 0x405c90
mov eax, dword [0x1395e34]
cmp eax, ebx
mov eax, dword [0x1395e04]
jne 0x405c61
cmp eax, ebx
jne 0x405c79
mov dword [0x45abcc], 0
mov dword [0x44e47c], ebx
jmp 0x405dae
cmp eax, ebx
jne 0x405c4c
mov eax, dword [esp + 0x20]
mov dword [0x44e47c], ebx
mov dword [0x45abcc], eax
jmp 0x405dae
fld dword [esp + 0x20]
fchs
fstp dword [0x45abcc]
mov dword [0x44e47c], ebx
jmp 0x405dae
mov ecx, dword [0x45ab8c]
mov edx, dword [0x1353278]
push ecx
push edx
call fcn.0043871c
fst dword [esp + 0x18]
fabs
fld dword [0x127a190]
fmul qword [0x44c4f0]
fld st(1)
add esp, 8
fcompp
fnstsw ax
test ah, 0x41
jne 0x405d14
fld dword [esp + 0x10]
fcomp dword [0x44c308]
fld dword [0x127a190]
fmul qword [0x44c3c0]
fnstsw ax
fdivr st(1)
test ah, 0x41
jne 0x405cfd
fld dword [esp + 0x20]
fchs
fmulp st(1)
mov dword [0x44e47c], ebx
fstp dword [0x45abcc]
fstp st(0)
jmp 0x405dae
fmul dword [esp + 0x20]
mov dword [0x44e47c], ebx
fstp dword [0x45abcc]
fstp st(0)
jmp 0x405dae
mov eax, dword [0x1353280]
mov ecx, dword [0x44e47c]
add eax, 0xfffffe0c
cmp ecx, eax
fstp st(0)
jge 0x405dae
cmp dword [0x134fbe8], edi
jne 0x405d62
mov ecx, dword [0x1353280]
mov dword [0x45abcc], 0
mov dword [0x45abc8], 0
mov dword [0x45abc4], 0
mov dword [0x44e47c], ecx
jmp 0x405dae
mov esi, 0x45abc4
call sub.MSVCRT.dll_rand
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [0x44c4e8]
fadd st(0), st(0)
fsub dword [0x44c470]
fmul qword [0x44c4e0]
fstp dword [esi]
add esi, edi
cmp esi, 0x45abd0
jl 0x405d67
mov ecx, dword [0x1353280]
mov dword [0x44e47c], ecx
jmp 0x405dae
mov edx, dword [0x1353280]
mov dword [0x44e47c], edx
mov esi, dword [0x44e47c]
mov edx, dword [0x134fbe8]
xor ecx, ecx
fld dword [ecx*4 + 0x45abc4]
fadd dword [ecx*4 + 0x1395d8c]
cmp edx, 4
fst dword [ecx*4 + 0x45abc4]
fld st(0)
fsub dword [ecx*4 + 0x45abac]
jne 0x405e0e
fld st(0)
fabs
fmul qword [0x44c440]
fadd qword [0x44c318]
fadd st(0), st(0)
fcom dword [0x44c4d8]
fnstsw ax
test ah, 0x41
jne 0x405e06
fstp st(0)
fld dword [0x44c4d8]
cmp ecx, ebx
jne 0x405e7f
fadd st(0), st(0)
jmp 0x405e7f
cmp esi, ebx
jne 0x405e1d
cmp ecx, 2
jne 0x405e1d
fld dword [esp + 0x20]
jmp 0x405e7f
fld dword [ecx*4 + 0x45abac]
fsub dword [ecx*4 + 0x1395d8c]
fabs
fld dword [esp + 0x20]
fmul qword [0x44c340]
fld st(1)
fcompp
fnstsw ax
test ah, 0x41
jne 0x405e4e
fdiv dword [esp + 0x20]
fmul qword [0x44c4d0]
jmp 0x405e7f
fcomp qword [0x44c3e8]
fnstsw ax
test ah, 1
je 0x405e79
fld dword [ecx*4 + 0x45abac]
fabs
fcomp qword [0x44c4e0]
fnstsw ax
test ah, 1
je 0x405e79
fld dword [0x44c4c8]
jmp 0x405e7f
fld dword [0x44c470]
fld st(2)
fcomp dword [0x44c308]
fnstsw ax
test ah, 1
je 0x405e95
mov eax, 1
jmp 0x405e97
xor eax, eax
inc eax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [0x127a190]
fld st(1)
fmulp st(1)
fmul qword [0x44c4c0]
fstp dword [esp + 0x10]
fld st(1)
fcomp dword [0x44c308]
fnstsw ax
test ah, 0x41
jne 0x405fa8
fld dword [ecx*4 + 0x45abb8]
fadd st(0), st(0)
fcomp st(2)
fnstsw ax
test ah, 1
je 0x405f96
fcom dword [0x44c470]
fnstsw ax
test ah, 0x40
je 0x405ef2
fld qword [0x44c318]
jmp 0x405f06
fld st(0)
fsub qword [0x44c318]
fmul qword [0x44c440]
fadd qword [0x44c318]
fld dword [esp + 0x10]
fadd dword [ecx*4 + 0x45abb8]
fst dword [ecx*4 + 0x45abb8]
fxch st(1)
fmul qword [0x44c4b8]
fcompp
fnstsw ax
test ah, 1
je 0x405f6e
fcom dword [0x44c470]
fnstsw ax
test ah, 0x40
je 0x405f4d
fstp st(0)
fld qword [0x44c318]
fmul qword [0x44c4b8]
fstp dword [ecx*4 + 0x45abb8]
jmp 0x405f70
fsub qword [0x44c318]
fmul qword [0x44c440]
fadd qword [0x44c318]
fmul qword [0x44c4b8]
fstp dword [ecx*4 + 0x45abb8]
jmp 0x405f70
fstp st(0)
fld dword [ecx*4 + 0x45abb8]
fadd st(0), st(0)
fcomp st(1)
fnstsw ax
test ah, 1
je 0x4060cb
fld st(0)
fadd st(0), st(0)
fstp dword [ecx*4 + 0x45abb8]
jmp 0x4060cb
fstp st(0)
fld st(0)
fadd st(0), st(0)
fstp dword [ecx*4 + 0x45abb8]
jmp 0x4060cb
fld st(1)
fcomp dword [0x44c308]
fnstsw ax
test ah, 1
je 0x40607f
fld dword [ecx*4 + 0x45abb8]
fadd st(0), st(0)
fcomp st(2)
fnstsw ax
test ah, 0x41
jne 0x405f96
fcom dword [0x44c470]
fnstsw ax
test ah, 0x40
je 0x405fe2
fld qword [0x44c318]
jmp 0x405ff6
fld st(0)
fsub qword [0x44c318]
fmul qword [0x44c440]
fadd qword [0x44c318]
fld dword [ecx*4 + 0x45abb8]
fsub dword [esp + 0x10]
fst dword [ecx*4 + 0x45abb8]
fxch st(1)
fmul qword [0x44c4b0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x40605e
fcom dword [0x44c470]
fnstsw ax
test ah, 0x40
je 0x40603d
fstp st(0)
fld qword [0x44c318]
fmul qword [0x44c4b0]
fstp dword [ecx*4 + 0x45abb8]
jmp 0x406060
fsub qword [0x44c318]
fmul qword [0x44c440]
fadd qword [0x44c318]
fmul qword [0x44c4b0]
fstp dword [ecx*4 + 0x45abb8]
jmp 0x406060
fstp st(0)
fld dword [ecx*4 + 0x45abb8]
fadd st(0), st(0)
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x4060cb
fld st(0)
fadd st(0), st(0)
fstp dword [ecx*4 + 0x45abb8]
jmp 0x4060cb
fstp st(0)
fld dword [ecx*4 + 0x45abb8]
fld dword [0x127a190]
fmul dword [ecx*4 + 0x45abb8]
fsubr dword [ecx*4 + 0x45abb8]
fst dword [esp + 0x10]
fstp dword [ecx*4 + 0x45abb8]
fld dword [esp + 0x10]
fld st(1)
fabs
fdivr st(2)
fld st(1)
fabs
fdivr st(2)
fcompp
fnstsw ax
fstp st(0)
test ah, 0x40
fstp st(0)
jne 0x4060cb
mov dword [ecx*4 + 0x45abb8], ebx
cmp edx, 4
jne 0x4060f5
fld dword [0x127a190]
fmul dword [ecx*4 + 0x45abb8]
fabs
fxch st(1)
fabs
fcompp
fnstsw ax
test ah, 1
je 0x4060f7
fst dword [ecx*4 + 0x45abac]
jmp 0x406112
fstp st(0)
fld dword [0x127a190]
fmul dword [ecx*4 + 0x45abb8]
fadd dword [ecx*4 + 0x45abac]
fstp dword [ecx*4 + 0x45abac]
fld dword [ecx*4 + 0x45abac]
fadd dword [esp + ecx*4 + 0x40]
inc ecx
cmp ecx, 3
fstp dword [esp + ecx*4 + 0x3c]
fsub dword [ecx*4 + 0x1395d88]
fstp dword [ecx*4 + 0x45abc0]
jl 0x405dbc
mov eax, dword [0x1353274]
mov ecx, dword [0x1353278]
mov edx, dword [0x135327c]
mov dword [0x45ab88], eax
mov eax, dword [esp + 0x40]
mov dword [0x45ab8c], ecx
mov ecx, dword [esp + 0x44]
mov dword [0x45ab90], edx
mov edx, dword [esp + 0x48]
mov dword [0x1458e90], eax
mov dword [0x1458e94], ecx
mov dword [0x1458e98], edx
test byte [0x134fbf8], 0x80
jne 0x406298
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x14]
or edx, 2
test eax, 0x40000
mov dword [esp + 0x80], edx
je 0x4061c7
push 0x3dcccccd
push 0x3dcccccd
push 0x3f800000
lea eax, [esp + 0x58]
push 0x43610000
push eax
call fcn.0041b4b0
add esp, 0x14
jmp 0x406a4a
test eax, 0x80000
je 0x406a4a
push 0x3f800000
push 0x3dcccccd
push 0x3dcccccd
lea ecx, [esp + 0x58]
push 0x43610000
push ecx
call fcn.0041b4b0
add esp, 0x14
jmp 0x406a4a
mov eax, dword [ebp + 0x48]
test ah, 8
jne 0x40620a
mov eax, dword [ebp + 0x334]
test eax, eax
je 0x40621e
push 0
lea edx, [esp + 0x40]
push ebp
push edx
call fcn.00403a70
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [ebp + 0x48]
test al, 1
je 0x40622a
test ah, 0x80
je 0x406234
mov edx, dword [ebp + 0x338]
test edx, edx
je 0x406294
test al, 2
jne 0x40627d
fld dword [esp + 0x54]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
fadd dword [0x44c4a8]
lea edx, [esp + 0x144]
mov dword [esp + 0x144], eax
push edx
lea eax, [esp + 0x40]
push ebp
push eax
fstp dword [esp + 0x158]
mov dword [esp + 0x154], ecx
call fcn.00404a20
mov ecx, dword [esp + 0x20]
add esp, 0xc
xor ebx, ebx
jmp 0x40629c
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x3c]
push ecx
push ebp
push edx
call fcn.00404a20
mov ecx, dword [esp + 0x20]
add esp, 0xc
xor ebx, ebx
jmp 0x40629c
mov ecx, dword [esp + 0x14]
test byte [esp + 0x1c], 0x80
je 0x4062d9
mov dword [esp + 0x78], 0x3e99999a
call sub.MSVCRT.dll_rand
mov ecx, eax
and ecx, reloc.WSOCK32.dll_closesocket
jns 0x4062bf
dec ecx
or ecx, 0xfffffffc
inc ecx
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x3c], ebx
shl ecx, 3
sar eax, cl
and eax, 0xff
mov dword [esp + 0x70], eax
jmp 0x4065e7
cmp dword [ebp + 0x28], 0xff
jne 0x4065cb
mov eax, dword [ebp + 0x30]
xor edi, edi
and eax, 0xff
mov edx, eax
shl edx, 6
add edx, eax
lea eax, [edx*4 + 0x1385888]
mov edx, dword [eax + 0x84]
cmp edx, ebx
lea esi, [eax + 0x84]
je 0x4063ca
mov ecx, 0x1395ca8
lea ebx, [ebp + 0x54]
sub ecx, eax
mov dword [esp + 0x10], ecx
mov ecx, 0x1395c88
sub ecx, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x70], 0
mov eax, dword [esi + 0x20]
mov dword [esp + 0x7c], eax
mov ecx, dword [esi]
cmp edi, 2
mov dword [esp + 0x3c], ecx
jg 0x406349
test eax, eax
je 0x40634d
test ecx, ecx
jne 0x406368
cmp edi, 3
jge 0x4063bd
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x30]
mov ecx, dword [eax + esi]
mov eax, dword [edx + esi]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x3c], eax
mov ecx, dword [0x134f424]
fld dword [ecx + 0x14]
fcomp dword [0x44c308]
fnstsw ax
test ah, 0x40
je 0x406389
mov dl, byte [ebx]
mov byte [esp + 0x88], dl
jmp 0x406391
mov byte [esp + 0x88], 0
lea eax, [esp + 0x3c]
push eax
call fcn.0041b3b0
add esp, 4
inc edi
add esi, 4
add ebx, 0x48
cmp edi, 3
jl 0x4063bd
cmp dword [ebp + 0x128], 0xff
je 0x4063bd
mov al, byte [ebp + 0x54]
test al, al
jne 0x4063c6
cmp dword [esi], 0
jne 0x40632b
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x7c], 0
mov byte [esp + 0x88], 0
cmp dword [ebp + 0x128], 0xff
jne 0x40645c
mov eax, dword [ebp + 0x30]
mov ecx, eax
and ecx, 0xff
mov edx, ecx
shl edx, 6
sar eax, 8
add edx, ecx
mov ecx, eax
mov eax, dword [0x134f448]
lea edx, [edx*4 + 0x1385888]
fld dword [eax + 0x14]
fcomp dword [0x44c308]
fnstsw ax
test ah, 0x40
jne 0x40641e
cmp ecx, 0xf
jle 0x406420
xor ecx, ecx
mov eax, dword [edx + ecx*4 + 0xc4]
test eax, eax
mov dword [esp + 0x3c], eax
jne 0x40644b
test ecx, ecx
je 0x40643d
mov eax, dword [edx + 0xc4]
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x40644b
mov ecx, dword [0x1395d4c]
mov dword [esp + 0x3c], ecx
lea edx, [esp + 0x3c]
push edx
call fcn.0041b3b0
mov ecx, dword [esp + 0x18]
add esp, 4
mov eax, dword [ebp + 0x48]
test ah, 1
je 0x4065eb
push str.models_pu_icon_money_money_lg.md2
call dword [0x482630]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x160]
lea ecx, [esp + 0x16c]
push eax
lea edx, [esp + 0x158]
push ecx
lea eax, [ebp + 0x10]
xor esi, esi
push edx
push eax
mov dword [esp + 0x84], esi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x7c], esi
call fcn.00437fac
lea ecx, [esp + 0x38]
lea edx, [esp + 0x164]
push ecx
push 0xc1900000
push edx
call fcn.00438f27
lea eax, [esp + 0x44]
lea ecx, [esp + 0x17c]
push eax
push ecx
lea edx, [esp + 0x4c]
push 0x41600000
push edx
call fcn.00438cfd
lea eax, [esp + 0x54]
lea ecx, [esp + 0x198]
push eax
push ecx
lea edx, [esp + 0x5c]
push 0xc0800000
push edx
call fcn.00438cfd
fld dword [esp + 0x64]
fadd dword [esp + 0x8c]
add esp, 0x40
lea eax, [esp + 0x3c]
push eax
fstp dword [esp + 0x50]
fld dword [esp + 0x2c]
fadd dword [esp + 0x54]
fstp dword [esp + 0x54]
fld dword [esp + 0x30]
fadd dword [esp + 0x58]
fstp dword [esp + 0x58]
fld dword [esp + 0x28]
fadd dword [esp + 0x60]
fstp dword [esp + 0x60]
fld dword [esp + 0x2c]
fadd dword [esp + 0x64]
fstp dword [esp + 0x64]
fld dword [esp + 0x30]
fadd dword [esp + 0x68]
fstp dword [esp + 0x68]
fld dword [esp + 0x44]
fadd dword [0x44c4a4]
fstp dword [esp + 0x44]
call fcn.0041b3b0
fld dword [esp + 0x44]
fsub dword [0x44c4a4]
add esp, 4
fstp dword [esp + 0x40]
fld dword [esp + 0x4c]
fsub dword [esp + 0x24]
fstp dword [esp + 0x4c]
fld dword [esp + 0x50]
fsub dword [esp + 0x28]
fstp dword [esp + 0x50]
fld dword [esp + 0x54]
fsub dword [esp + 0x2c]
fstp dword [esp + 0x54]
fld dword [esp + 0x5c]
fsub dword [esp + 0x24]
fstp dword [esp + 0x5c]
fld dword [esp + 0x60]
fsub dword [esp + 0x28]
fstp dword [esp + 0x60]
fld dword [esp + 0x64]
fsub dword [esp + 0x2c]
fstp dword [esp + 0x64]
mov ecx, dword [ebp + 0x2c]
mov dword [esp + 0x58], ecx
mov edx, dword [ebp + 0x30]
mov dword [esp + 0x70], edx
mov dword [esp + 0x7c], esi
jmp 0x4065e7
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x70], eax
mov ecx, dword [ebp + 0x28]
lea edx, [esp + 0x3c]
push ecx
push edx
call fcn.00405540
add esp, 8
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 0x28]
test eax, eax
jne 0x4065fd
mov eax, dword [ebp + 0x4c]
test eax, eax
je 0x406a4a
mov ebx, ecx
and ebx, 0x80
je 0x40661f
mov eax, dword [esp + 0x80]
mov dword [esp + 0x78], 0x3e99999a
or al, 0x20
mov dword [esp + 0x80], eax
mov esi, ecx
and esi, 0x1000000
mov dword [esp + 0x30], esi
je 0x406645
mov eax, dword [esp + 0x80]
mov dword [esp + 0x78], 0x3f19999a
or al, 0x20
mov dword [esp + 0x80], eax
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x406664
cmp eax, 0xff
je 0x406664
lea eax, [esp + 0x3c]
push eax
call fcn.0041b3b0
mov ecx, dword [esp + 0x18]
add esp, 4
mov eax, dword [ebp + 0x4c]
test eax, eax
je 0x4066cf
cmp dword [ebp + 0x28], 0xff
je 0x4066cf
lea esi, [ebp + 0x50]
mov edi, 8
cmp dword [esi], 0
je 0x4066c5
mov cl, byte [esi + 4]
lea eax, [esp + 0x3c]
mov byte [esp + 0x88], cl
mov edx, dword [esi]
push edx
push eax
call fcn.00405540
mov ecx, dword [esi + 5]
lea eax, [esp + 0x44]
mov dword [esp + 0x91], ecx
mov edx, dword [esi + 9]
push eax
mov dword [esp + 0x99], edx
mov byte [esp + 0x9d], 1
call fcn.0041b3b0
mov ecx, dword [esp + 0x20]
add esp, 0xc
add esi, 0x48
dec edi
jne 0x40667c
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x128]
test eax, eax
je 0x406700
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x3c]
or al, 0x20
push ecx
mov dword [esp + 0x84], eax
mov dword [esp + 0x7c], 0x3e99999a
call fcn.0041b3b0
mov ecx, dword [esp + 0x18]
add esp, 4
xor eax, eax
test ch, 2
mov dword [esp + 0x7c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x78], eax
je 0x406750
mov edx, dword [0xd63c78]
mov dword [esp + 0x68], eax
mov dword [esp + 0x58], eax
lea eax, [esp + 0x3c]
push eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x84], 0x820
mov dword [esp + 0x7c], 0x3e99999a
call fcn.0041b3b0
mov ecx, dword [esp + 0x18]
add esp, 4
test ecx, 0xfffffffe
je 0x406a28
test cl, 0x10
je 0x40677e
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x4c]
push eax
add eax, 0x9f8
push ecx
push eax
call fcn.0040a220
add esp, 0xc
jmp 0x406a28
test cl, 8
je 0x4067ba
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x4c]
add eax, 0x9f8
push edx
push eax
call fcn.00409db0
push 0
push 0x3f800000
push 0x3f800000
lea ecx, [esp + 0x60]
push 0x43480000
push ecx
call fcn.0041b4b0
add esp, 0x1c
jmp 0x406a28
test ecx, 0x8000000
je 0x4067d9
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x4c]
push edx
push eax
call fcn.00409690
add esp, 8
jmp 0x406a28
test cl, 0x40
je 0x4067f9
push 0
push 0x3f800000
push 0x3f800000
lea ecx, [esp + 0x58]
push 0x43480000
push ecx
jmp 0x406a20
test cl, 2
je 0x40681c
mov eax, dword [esp + 0x18]
push ecx
push eax
lea edx, [esp + 0x54]
add eax, 0x9f8
push edx
push eax
call fcn.0040a0c0
add esp, 0x10
jmp 0x406a28
test cl, 0x20
je 0x406851
lea eax, [esp + 0x4c]
push eax
call fcn.0040a070
push 0x3f4ccccd
push 0x3f4ccccd
push 0x3f666666
lea ecx, [esp + 0x5c]
push 0x42800000
push ecx
call fcn.0041b4b0
add esp, 0x18
jmp 0x406a28
test ch, 0x40
je 0x40686d
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x4c]
push edx
push eax
call fcn.0040a950
add esp, 8
jmp 0x406a28
test ebx, ebx
je 0x4068b6
test ch, 0x20
je 0x40688d
lea ecx, [esp + 0x3c]
push ecx
call fcn.0040aa10
add esp, 4
mov dword [esp + 0x1c], 0xc8
jmp 0x40689b
mov edx, dword [ebp + 0x2c]
mov eax, dword [edx*4 + 0x44e480]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
push 0
push 0x3f800000
push 0
push ecx
lea ecx, [esp + 0x5c]
fstp dword [esp]
push ecx
jmp 0x406a20
test ecx, 0x2000000
je 0x40690d
fld dword [esp + 0x54]
fadd dword [0x44c490]
lea edx, [esp + 0x3c]
push edx
fstp dword [esp + 0x58]
call fcn.0040abf0
add esp, 4
call sub.MSVCRT.dll_rand
cdq
mov ecx, 0x64
push 0x3dcccccd
idiv ecx
push 0x3f4ccccd
push 0x3f800000
push ecx
add edx, ecx
mov dword [esp + 0x2c], edx
lea edx, [esp + 0x5c]
fild dword [esp + 0x2c]
fstp dword [esp]
push edx
jmp 0x406a20
test ecx, 0x40000
je 0x406955
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x4c]
push 0x43720000
add ecx, 0x9f8
push eax
push ecx
call fcn.00409f10
push 0x3dcccccd
push 0x3dcccccd
push 0x3f800000
lea edx, [esp + 0x64]
push 0x43610000
push edx
call fcn.0041b4b0
add esp, 0x20
jmp 0x406a28
test ecx, 0x80000
je 0x406988
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x4c]
push 0x42e60000
add ecx, 0x9f8
push eax
push ecx
call fcn.00409f10
push 0x3f800000
push 0x3dcccccd
push 0x3dcccccd
jmp 0x40693e
test ecx, 0x100000
je 0x4069c8
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x4c]
add ecx, 0x9f8
push eax
push ecx
call fcn.0040a4c0
push 0x3f000000
push 0x3f000000
push 0x3f800000
lea edx, [esp + 0x60]
push 0x42c80000
push edx
call fcn.0041b4b0
add esp, 0x1c
jmp 0x406a28
test ecx, 0x400000
je 0x4069e6
push 0x3f000000
push 0x3f000000
push 0x3f000000
push 0x437f0000
jmp 0x406a1b
test esi, esi
je 0x406a28
test ch, 0x20
je 0x406a07
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x4c]
add edx, 0x9f8
push ecx
push edx
call fcn.00409db0
add esp, 8
push 0x3f000000
push 0x3f000000
push 0x3f800000
push 0x43020000
lea eax, [esp + 0x5c]
push eax
call fcn.0041b4b0
add esp, 0x14
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0x9f8], ecx
mov edx, dword [esp + 0x50]
mov dword [eax + 0x9fc], edx
mov ecx, dword [esp + 0x54]
mov dword [eax + 0xa00], ecx
mov edx, dword [esp + 0x190]
mov eax, dword [esp + 0x34]
inc eax
mov ecx, dword [edx + 0x330]
mov dword [esp + 0x34], eax
cmp eax, ecx
jl 0x405734
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x17c
ret