Function at 0x10045c00
Capabilities:
Check http status code
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x114
mov eax, dword [0x1008c0c0]
xor eax, ebp
mov dword [ebp - 4], eax
fldz
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
fst dword [ebp - 0xa0]
mov dword [ebp - 0xbc], 0
fst dword [ebp - 0x58]
mov eax, dword [edi + 4]
mov edx, dword [edi]
mov dword [ebp - 0x4c], eax
mov eax, dword [edi + 8]
mov dword [ebp - 8], eax
xor eax, eax
cmp dword [ebp + 0x18], 2
mov esi, dword [edx + 4]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0x48], eax
mov eax, dword [edx + 8]
mov dword [ebp - 0x88], eax
mov eax, dword [edx + 0x20]
fst dword [ebp - 0xc4]
fst dword [ebp - 0x5c]
mov dword [ebp - 0x94], eax
mov eax, dword [edi + 0x20]
fst dword [ebp - 0xac]
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 0x24]
fstp dword [ebp - 0x38]
mov dword [ebp - 0x68], 0xf
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x18], eax
jl 0x100479b3
cmp dword [ebp + 0xc], 0
je 0x100479b3
mov ebx, dword [edi + 0x1c]
xor ecx, ecx
imul ebx, dword [ebp + 0x10]
mov edx, dword [edx + 0x24]
mov dword [ebp - 0x10], ecx
test edx, edx
js 0x10045cd3
mov eax, dword [ebp - 0x14]
mov esi, dword [eax + 0x2c]
mov eax, esi
shl eax, cl
cmp eax, ebx
je 0x10045ccd
inc ecx
cmp ecx, edx
jle 0x10045cc0
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x10], ecx
cmp ecx, edx
jg 0x100479b3
mov edx, dword [ebp - 0x14]
mov eax, 1
shl eax, cl
mov dword [ebp - 0x90], eax
mov ecx, dword [edx + 0x2c]
imul ecx, eax
mov eax, esi
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0x7c], ecx
mov ecx, dword [ebp - 0x4c]
imul eax, ecx
imul edx, ecx
add eax, 0x3b
mov dword [ebp - 0xe0], edx
lea eax, [edi + eax*4]
mov dword [ebp - 0x6c], eax
lea eax, [esi*4]
mov esi, dword [ebp + 0x1c]
mov dword [ebp - 0x24], eax
add eax, 0x1000
imul eax, ecx
lea ecx, [edx*4]
mov dword [ebp - 0xc8], ecx
add eax, 0xec
add eax, edi
mov dword [ebp - 0x84], eax
add eax, ecx
mov dword [ebp - 0xcc], eax
add eax, ecx
mov dword [ebp - 0xb8], eax
add eax, ecx
mov dword [ebp - 0xd0], eax
test esi, esi
jne 0x10045d6e
mov eax, 1
xor ecx, ecx
mov dword [ebp - 0xb4], eax
jmp 0x10045d91
push esi
call fcn.1004ea60
mov dword [ebp - 0xb4], eax
add esp, 4
bsr eax, dword [esi + 0x1c]
mov dword [ebp - 0x60], eax
mov eax, dword [esi + 0x14]
sub eax, dword [ebp - 0x60]
dec eax
lea ecx, [eax + 4]
sar ecx, 3
mov esi, dword [ebp + 0x18]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x28], eax
cmp esi, 0x4fb
jl 0x10045daa
mov esi, 0x4fb
mov dword [ebp + 0x18], esi
mov edx, esi
sub edx, ecx
cmp dword [edi + 0x2c], 0
mov dword [ebp - 0x70], edx
je 0x10045dee
mov edi, dword [edi + 0x28]
cmp edi, 0xffffffff
je 0x10045deb
mov eax, dword [ebp - 0x14]
mov ecx, edi
imul ecx, ebx
mov ebx, dword [ebp - 0x40]
mov esi, dword [eax]
sar esi, 3
mov eax, esi
sar eax, 1
add eax, ecx
cdq
idiv esi
mov esi, eax
mov dword [ebp - 0xa8], eax
sar esi, 6
mov dword [ebp - 0x50], esi
mov esi, dword [ebp + 0x18]
jmp 0x10045e57
mov edi, dword [ebp + 8]
mov edi, dword [edi + 0x28]
mov ecx, edi
imul ecx, ebx
mov dword [ebp - 0xa8], 0
cmp eax, 1
jle 0x10045e07
add ecx, eax
cmp edi, 0xffffffff
je 0x10045e4d
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
lea ecx, [ecx + eax*4]
lea esi, [eax*8]
mov eax, ecx
cdq
xor ecx, ecx
idiv esi
mov edx, dword [ebp + 8]
mov esi, dword [ebp + 0x18]
cmp dword [edx + 0x30], ecx
setne cl
sub eax, ecx
mov ecx, esi
cmp esi, eax
jl 0x10045e38
mov ecx, eax
cmp ecx, 2
jge 0x10045e44
mov esi, 2
jmp 0x10045e4a
cmp esi, eax
jl 0x10045e4d
mov esi, eax
mov dword [ebp + 0x18], esi
mov ebx, dword [ebp - 0x40]
mov eax, esi
sub eax, ebx
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 8]
mov edx, 0x190
mov ecx, dword [ebp - 0x10]
sar edx, cl
sub edx, 0x32
lea eax, [eax + eax*4]
lea eax, [eax*8 + 0x14]
imul edx, eax
mov eax, 3
sub eax, ecx
mov dword [ebp - 0xc0], eax
mov ecx, eax
imul eax, esi, 0x190
sar eax, cl
sub eax, edx
mov dword [ebp - 0x98], eax
cmp edi, 0xffffffff
je 0x10045ea4
sub edi, edx
cmp eax, edi
jl 0x10045ea4
mov dword [ebp - 0x98], edi
mov edi, dword [ebp + 0x1c]
test edi, edi
jne 0x10045ec7
push esi
push dword [ebp + 0x14]
lea eax, [ebp - 0x114]
push eax
call fcn.10049f70
lea edi, [ebp - 0x114]
add esp, 0xc
mov dword [ebp + 0x1c], edi
mov ecx, dword [ebp - 0xa8]
mov esi, dword [ebp - 0x28]
test ecx, ecx
jle 0x10045f20
mov eax, dword [ebp + 8]
cmp dword [eax + 0x34], 0
je 0x10045f20
add ecx, ecx
sub ecx, dword [eax + 0xc8]
lea eax, [esi - 1]
sar ecx, 6
neg eax
sbb eax, eax
and eax, 0xfffffffe
add eax, 2
mov edx, eax
cmp eax, ecx
jg 0x10045efd
mov edx, ecx
cmp edx, dword [ebp - 0x70]
jge 0x10045f20
cmp eax, ecx
jg 0x10045f08
mov eax, ecx
cmp eax, dword [ebp - 0x70]
jge 0x10045f20
lea ecx, [eax + ebx]
mov dword [ebp - 0x70], eax
push ecx
push edi
mov dword [ebp + 0x18], ecx
call fcn.1004a120
add esp, 8
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x54], ecx
lea edi, [eax*8]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x74], edi
mov eax, dword [eax + 0xc]
cmp ecx, eax
jle 0x10045f40
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x7c]
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0x64], eax
imul eax, dword [ebp - 0x4c]
shl eax, 2
call fcn.1006ca60
mov eax, dword [ebp - 0x7c]
sub eax, dword [ebp - 0x3c]
imul eax, dword [ebp - 8]
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x2c], esp
cdq
idiv dword [ecx + 0x1c]
push eax
push ebx
mov dword [ebp - 0x60], eax
call fcn.10047b00
mov ecx, dword [ebp + 8]
add esp, 8
fst dword [ebp - 0x44]
fcomp dword [ecx + 0xd8]
fnstsw ax
test ah, 5
jp 0x10045f95
fld dword [ecx + 0xd8]
fstp dword [ebp - 0x44]
mov eax, dword [ebp - 0x3c]
imul eax, dword [ebp - 8]
cdq
idiv dword [ecx + 0x1c]
push eax
mov eax, dword [ebp - 0x60]
lea eax, [ebx + eax*4]
push eax
call fcn.10047b00
mov edx, dword [ebp + 8]
add esp, 8
fst dword [edx + 0xd8]
fld dword [ebp - 0x44]
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x10045fcc
fstp st(0)
fst dword [ebp - 0x44]
jmp 0x10045fce
fstp st(1)
mov ecx, dword [edx + 0x3c]
mov eax, 1
shl eax, cl
mov dword [ebp - 0x60], eax
fild dword [ebp - 0x60]
fld1
fdivrp st(1)
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x10045ff2
mov eax, 1
jmp 0x10045ff4
xor eax, eax
mov dword [ebp - 0x9c], eax
cmp esi, 1
jne 0x100460a2
mov ebx, dword [ebp + 0x1c]
fstp st(0)
push 0xf
push eax
push ebx
call fcn.10049c60
add esp, 0xc
cmp dword [ebp - 0x9c], 0
je 0x10046069
cmp dword [ebp - 0xa8], 0
jle 0x10046057
mov eax, dword [ebp - 0x40]
add eax, 2
cmp dword [ebp + 0x18], eax
jl 0x10046036
mov dword [ebp + 0x18], eax
jmp 0x10046039
mov eax, dword [ebp + 0x18]
push eax
lea edi, [eax*8]
mov dword [ebp - 0x50], eax
push ebx
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x70], 2
call fcn.1004a120
add esp, 8
bsr eax, dword [ebx + 0x1c]
mov ecx, edi
mov dword [ebp - 0x60], eax
inc eax
add eax, ecx
mov dword [ebp - 0x28], ecx
mov dword [ebx + 0x14], eax
mov edx, dword [ebp + 8]
fld dword [ebp - 0x44]
mov ecx, dword [ebp - 0x14]
lea edi, [edx + 0xb8]
mov ebx, dword [ebp - 0x2c]
add ecx, 0x10
fld dword [0x100748f0]
xor esi, esi
add ebx, dword [ebp - 0x24]
mov dword [ebp - 0x60], ecx
cmp dword [edx + 0x10], 0
je 0x100460ae
fcompp
fnstsw ax
test ah, 5
jp 0x100460b2
mov eax, 1
jmp 0x100460b4
mov dword [ebp - 0x9c], 0
jmp 0x1004606f
fstp st(0)
fstp st(0)
xor eax, eax
push eax
push edi
push ecx
push dword [edx + 0x1c]
push dword [ebp - 0x4c]
push dword [ebp - 0x7c]
push ebx
push dword [ebp + 0xc]
call fcn.10047b50
mov ecx, dword [ebp - 0x64]
inc esi
add dword [ebp + 0xc], 4
add esp, 0x20
fld dword [ebp - 0x44]
add edi, 4
fld dword [0x100748f0]
mov edx, dword [ebp + 8]
lea eax, [ecx*4]
mov ecx, dword [ebp - 0x60]
add ebx, eax
cmp esi, dword [ebp - 0x4c]
jl 0x1004608c
mov ecx, dword [ebp - 0x70]
mov edi, edx
fstp st(0)
fstp st(0)
cmp dword [edi + 0x40], 0
je 0x10046108
cmp ecx, 3
jg 0x10046115
mov eax, dword [ebp - 8]
lea eax, [eax + eax*2]
shl eax, 2
cmp ecx, eax
jle 0x10046137
cmp dword [ebp - 0xc], 0
jne 0x10046137
cmp dword [ebp - 0x9c], 0
jne 0x10046137
cmp dword [edi + 0x14], 0
jne 0x10046137
cmp dword [edi + 0x18], 5
jl 0x10046137
mov eax, 1
jmp 0x10046139
xor eax, eax
mov edx, dword [edi + 0x64]
push ecx
push eax
mov ebx, dword [ebp - 0x2c]
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xa0]
mov dword [ebp - 0x60], edx
push eax
lea eax, [ebp - 0x68]
push eax
push edx
push dword [ebp - 0x7c]
push dword [ebp - 0x4c]
push dword [ebp - 0x6c]
push ebx
push edi
call fcn.10049050
fld dword [0x10074878]
mov ecx, eax
fld dword [ebp - 0xa0]
add esp, 0x2c
fcomp st(1)
mov dword [ebp - 0x8c], ecx
fnstsw ax
test ah, 0x41
je 0x10046190
fcomp dword [edi + 0x6c]
fnstsw ax
test ah, 5
jp 0x100461de
jmp 0x10046192
fstp st(0)
cmp dword [edi + 0x78], 0
je 0x100461a8
fld dword [edi + 0x7c]
fcomp qword [0x10074898]
fnstsw ax
test ah, 0x41
jne 0x100461de
fild dword [ebp - 0x68]
fild dword [edi + 0x68]
fld qword [0x100748b0]
fmul st(1)
fcomp st(2)
fnstsw ax
test ah, 5
jnp 0x100461d0
fmul qword [0x100748a8]
fcompp
fnstsw ax
test ah, 0x41
jne 0x100461de
jmp 0x100461d4
fstp st(0)
fstp st(0)
mov dword [ebp - 0xb0], 1
test ecx, ecx
jne 0x10046216
mov ecx, dword [ebp - 0xc]
test ecx, ecx
jne 0x1004620b
mov eax, dword [ebp - 0x28]
add eax, 0x10
cmp eax, dword [ebp - 0x74]
jg 0x1004620b
mov esi, dword [ebp + 0x1c]
push 1
push ecx
push esi
call fcn.10049c60
mov eax, dword [ebp - 0x68]
add esp, 0xc
mov dword [ebp - 0x68], eax
jmp 0x1004627c
mov eax, dword [ebp - 0x68]
mov esi, dword [ebp + 0x1c]
mov dword [ebp - 0x68], eax
jmp 0x1004627f
push 1
push 1
push dword [ebp + 0x1c]
call fcn.10049c60
mov eax, dword [ebp - 0x68]
inc eax
mov dword [ebp - 0x68], eax
bsr eax, eax
push 6
mov esi, eax
mov dword [ebp - 0x3c], eax
add esi, 0xfffffffc
push esi
push dword [ebp + 0x1c]
call fcn.1004a150
lea eax, [esi + 4]
mov ecx, esi
mov esi, dword [ebp + 0x1c]
mov edx, 0x10
push eax
mov eax, dword [ebp - 0x68]
shl edx, cl
sub eax, edx
push eax
push esi
call fcn.10049ca0
dec dword [ebp - 0x68]
push 3
push dword [ebp - 0x40]
push esi
call fcn.10049ca0
push 2
push 0x100746f8
push dword [ebp - 0x60]
push esi
call fcn.10049f00
add esp, 0x40
mov ecx, dword [ebp - 0xc]
xor edx, edx
cmp dword [edi + 0x18], 1
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x44], edx
jl 0x100462dc
cmp dword [edi + 0x40], edx
jne 0x100462dc
test ecx, ecx
je 0x100462aa
cmp dword [ebp - 0x50], 0xf
jge 0x100462aa
cmp dword [edi + 0xb4], 0x64
jl 0x100462aa
lea eax, [edx + 1]
jmp 0x100462ac
xor eax, eax
lea ecx, [ebp - 0x48]
push ecx
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0x4c]
push dword [ebp - 0x64]
push ebx
call fcn.10049940
fld dword [ebp - 0x38]
mov edx, eax
mov dword [ebp - 0x1c], eax
add esp, 0x1c
mov eax, dword [ebp - 0x30]
fstp dword [ebp - 0xac]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x10], 0
jle 0x10046307
bsr ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x14]
sub eax, ecx
mov dword [ebp - 0x3c], ecx
add eax, 2
cmp eax, dword [ebp - 0x74]
jg 0x10046307
mov eax, edx
neg eax
sbb eax, eax
and eax, dword [ebp - 0x90]
mov dword [ebp - 0x44], eax
jmp 0x10046318
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xd8], 1
mov eax, dword [ebp - 0x7c]
imul eax, dword [ebp - 0x4c]
shl eax, 2
call fcn.1006ca60
mov eax, dword [ebp - 0xc8]
mov esi, esp
mov dword [ebp - 0x24], esi
call fcn.1006ca60
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x80], esp
call fcn.1006ca60
cmp dword [ebp - 0x44], 0
mov dword [ebp - 0x78], esp
je 0x1004635b
cmp dword [edi + 0x18], 8
jl 0x1004635b
mov ebx, 1
jmp 0x1004635d
xor ebx, ebx
mov eax, dword [ebp - 0x88]
imul eax, dword [ebp - 8]
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x6c], eax
shl eax, 2
call fcn.1006ca60
mov dword [ebp - 0x28], esp
test ebx, ebx
je 0x10046447
push dword [edi + 0x48]
push dword [edi + 0x1c]
push dword [ebp - 0x10]
push dword [ebp - 0x4c]
push dword [ebp - 8]
push esi
push dword [ebp - 0x2c]
push 0
push dword [ebp - 0x14]
call fcn.10047ec0
push dword [edi + 0x48]
push dword [ebp - 0x10]
push dword [ebp - 8]
push dword [ebp - 0x54]
push dword [ebp - 0x80]
push esi
push dword [ebp - 0x14]
call fcn.10050890
add esp, 0x40
push dword [ebp - 8]
push dword [ebp - 0x28]
push dword [ebp - 0x80]
push dword [ebp - 0x18]
push dword [ebp - 0x54]
push dword [ebp - 0x14]
call fcn.10053790
mov edx, dword [ebp - 0x6c]
add esp, 0x18
xor ecx, ecx
cmp edx, 4
jl 0x10046428
mov eax, dword [ebp - 0x28]
add edx, 0xfffffffc
fild dword [ebp - 0x10]
add eax, 8
shr edx, 2
inc edx
fld dword [0x1007467c]
fmul st(1), st(0)
lea ecx, [edx*4]
fld st(1)
fadd dword [eax - 8]
fstp dword [eax - 8]
fld dword [eax - 4]
fadd st(2)
fstp dword [eax - 4]
fld st(1)
fadd dword [eax]
fstp dword [eax]
fld st(1)
fadd dword [eax + 4]
fstp dword [eax + 4]
add eax, 0x10
sub edx, 1
jne 0x100463fb
mov edx, dword [ebp - 0x6c]
fstp st(1)
jmp 0x1004642e
fld dword [0x1007467c]
cmp ecx, edx
jge 0x10046445
fimul dword [ebp - 0x10]
mov eax, dword [ebp - 0x28]
fld st(0)
fadd dword [eax + ecx*4]
fstp dword [eax + ecx*4]
inc ecx
cmp ecx, edx
jl 0x10046438
fstp st(0)
push dword [edi + 0x48]
push dword [edi + 0x1c]
push dword [ebp - 0x10]
push dword [ebp - 0x4c]
push dword [ebp - 8]
push esi
push dword [ebp - 0x2c]
push dword [ebp - 0x44]
push dword [ebp - 0x14]
call fcn.10047ec0
add esp, 0x24
cmp dword [ebp - 0x4c], 2
jne 0x10046479
mov eax, dword [ebp - 8]
dec eax
neg eax
sbb eax, eax
and dword [ebp - 0x34], eax
push dword [edi + 0x48]
push dword [ebp - 0x10]
push dword [ebp - 8]
push dword [ebp - 0x54]
push dword [ebp - 0x80]
push esi
push dword [ebp - 0x14]
call fcn.10050890
fld dword [0x10074660]
add esp, 0x1c
cmp dword [edi + 0x40], 0
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x80]
je 0x100464e5
mov ecx, 2
cmp esi, ecx
jle 0x100464e5
fld dword [0x1007483c]
fld dword [edx + ecx*4]
fld dword [edx]
fmul st(2)
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x100464c9
fstp st(0)
jmp 0x100464cb
fstp st(1)
fst dword [edx + ecx*4]
fcom st(2)
fnstsw ax
test ah, 0x41
je 0x100464db
fstp st(0)
fld st(1)
fstp dword [edx + ecx*4]
inc ecx
cmp ecx, esi
jl 0x100464b5
fstp st(0)
push dword [ebp - 8]
fstp st(0)
push dword [ebp - 0x78]
push edx
push esi
push dword [ebp - 0x54]
push dword [ebp - 0x14]
call fcn.10053790
mov ecx, dword [ebp - 0x6c]
add esp, 0x18
lea eax, [ecx*4]
call fcn.1006ca60
mov eax, esp
lea ecx, [esi*4]
push ecx
push 0
push eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0xe4], ecx
call sub.VCRUNTIME140.dll_memset
mov edx, dword [ebp - 0xc]
add esp, 0xc
fld dword [0x10074870]
fld dword [0x10074678]
test edx, edx
jne 0x100467d1
mov eax, dword [edi + 0xe4]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x100467d1
cmp dword [edi + 0x40], 0
jne 0x100467d1
fldz
xor ebx, ebx
mov esi, dword [edi + 0x5c]
fld st(0)
mov dword [ebp - 0x58], ebx
fld st(1)
mov dword [ebp - 0x38], esi
cmp esi, 2
jge 0x1004657a
mov esi, 2
mov dword [ebp - 0x38], esi
mov edi, dword [ebp - 8]
test edi, edi
jle 0x10046638
fld dword [0x100746a8]
xor ecx, ecx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x5c], edi
xor edx, edx
test esi, esi
jle 0x10046612
mov edi, 1
sub edi, esi
lea esi, [ecx + eax]
mov dword [ebp - 0x58], edi
fld dword [esi]
fcom st(6)
fnstsw ax
test ah, 5
jp 0x100465cb
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x100465c5
fcom st(4)
fnstsw ax
test ah, 0x41
jne 0x100465d5
jmp 0x100465cf
fstp st(0)
fld st(0)
jmp 0x100465d5
fstp st(0)
fld st(5)
fmul dword [0x1007467c]
mov eax, dword [ebp - 0x94]
add edi, 2
add esi, 4
movsx ecx, word [eax + edx*2 + 2]
movsx eax, word [eax + edx*2]
inc edx
sub ecx, eax
mov dword [ebp - 0x20], ecx
add ebx, ecx
fild dword [ebp - 0x20]
fmul st(1)
faddp st(4)
fimul dword [ebp - 0x58]
mov dword [ebp - 0x58], edi
faddp st(2)
cmp edx, dword [ebp - 0x38]
jl 0x100465a6
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x5c]
mov dword [ebp - 0x58], ebx
mov esi, dword [ebp - 0x88]
lea edx, [esi*4]
mov esi, dword [ebp - 0x38]
add ecx, edx
sub edi, 1
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x5c], edi
jne 0x10046593
mov edi, dword [ebp - 8]
fstp st(0)
fild dword [ebp - 0x58]
lea eax, [esi + 1]
lea ecx, [esi - 1]
imul ecx, eax
fdivp st(2)
fxch st(1)
imul ecx, esi
fadd st(3)
fxch st(1)
fmul dword [0x100748d4]
imul ecx, edi
mov dword [ebp - 0x20], ecx
fidiv dword [ebp - 0x20]
fmul dword [0x1007467c]
fst dword [ebp - 0x5c]
fld dword [0x1007484c]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x10046687
fstp st(0)
fld dword [0x100748f4]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x1004668e
fstp st(1)
fst dword [ebp - 0x5c]
jmp 0x10046690
fstp st(0)
mov ecx, dword [ebp - 0x94]
xor esi, esi
mov eax, dword [ebp - 0x38]
movsx eax, word [ecx + eax*2]
cdq
sub eax, edx
lea edx, [ecx + 2]
movsx ecx, word [edx]
mov edi, eax
sar edi, 1
cmp ecx, edi
jge 0x100466bc
movsx eax, word [edx + 2]
lea edx, [edx + 2]
inc esi
cmp eax, edi
jl 0x100466b0
mov eax, dword [ebp - 0x38]
xor edx, edx
test eax, eax
jle 0x100467cd
mov edi, dword [ebp - 0x30]
neg esi
mov ecx, dword [ebp - 0x88]
mov ebx, dword [ebp - 0x64]
sub ebx, edi
mov dword [ebp - 0x58], esi
lea ecx, [edi + ecx*4]
mov edi, eax
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 8], 2
fild dword [ebp - 0x58]
fmul st(1)
fadd st(2)
jne 0x1004670e
fstp st(1)
fld dword [eax]
fld dword [ecx]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x10046707
fstp st(0)
fld dword [ebp - 0x5c]
jmp 0x10046714
fstp st(1)
fld dword [ebp - 0x5c]
jmp 0x10046714
fld dword [eax]
fxch st(1)
fxch st(2)
fxch st(1)
fcom st(4)
fnstsw ax
test ah, 5
jnp 0x10046723
fstp st(0)
fld st(3)
fsubrp st(2)
fxch st(1)
fcom st(5)
fnstsw ax
test ah, 0x41
mov eax, dword [ebp - 0x30]
jne 0x1004673b
fsub st(5)
inc edx
fstp dword [ebx + eax]
jmp 0x1004673d
fstp st(0)
inc esi
add eax, 4
add ecx, 4
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x30], eax
sub edi, 1
jne 0x100466e4
fstp st(0)
cmp edx, 3
jl 0x100467ad
fadd st(3)
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x1004678d
mov eax, dword [ebp - 0x38]
fstp st(0)
shl eax, 2
fstp st(1)
push eax
fstp st(1)
push edi
push dword [ebp - 0x64]
fst dword [ebp - 0x58]
fstp dword [ebp - 0x5c]
call sub.VCRUNTIME140.dll_memset
fld dword [0x10074678]
add esp, 0xc
fld dword [ebp - 0x58]
fxch st(1)
jmp 0x100467b1
mov edx, dword [ebp - 0x64]
xor ecx, ecx
fld dword [edx + ecx*4]
fsub st(4)
fcom st(2)
fnstsw ax
test ah, 5
jp 0x100467a4
fstp st(0)
fld st(1)
fstp dword [edx + ecx*4]
inc ecx
cmp ecx, dword [ebp - 0x38]
jl 0x10046792
fstp st(3)
fstp st(0)
fld dword [ebp - 0x5c]
fmul dword [0x100748e4]
mov edi, dword [ebp + 8]
mov ebx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0xc]
fstp dword [ebp - 0x5c]
faddp st(1)
fstp dword [ebp - 0x58]
jmp 0x100467d5
fstp st(0)
jmp 0x100467ad
fstp st(0)
fstp st(0)
mov esi, dword [edi + 0x40]
test esi, esi
jne 0x100468df
fld dword [0x10074910]
fldz
fld st(0)
cmp dword [ebp - 0x44], esi
je 0x100467fc
fstp st(1)
fild dword [ebp - 0x10]
fmul dword [0x1007467c]
jmp 0x100467fe
fxch st(1)
mov eax, dword [ebp - 0x18]
mov ecx, edx
cmp edx, eax
jge 0x10046872
mov eax, dword [ebp - 0x88]
mov edi, dword [ebp - 0x78]
add eax, edx
fld1
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 8]
lea edx, [edi + eax*4]
jmp 0x10046821
fxch st(2)
fsub st(3), st(0)
fld dword [edi + ecx*4]
fsub st(2)
fcom st(4)
fnstsw ax
test ah, 5
jp 0x10046835
fstp st(0)
jmp 0x10046837
fstp st(4)
cmp ebx, 2
jne 0x1004684f
fld dword [edx]
fsub st(2)
fcom st(4)
fnstsw ax
test ah, 5
jnp 0x1004684d
fstp st(4)
jmp 0x1004684f
fstp st(0)
inc ecx
fxch st(2)
add edx, 4
fadd st(3)
cmp ecx, esi
jl 0x1004681f
mov edi, dword [ebp + 8]
fstp st(3)
mov ebx, dword [ebp - 0x3c]
fstp st(0)
mov eax, dword [ebp - 0x18]
fstp st(0)
mov edx, dword [ebp - 0xc]
mov esi, dword [edi + 0x40]
jmp 0x10046876
fstp st(2)
fstp st(1)
fld dword [edi + 0xe8]
sub eax, edx
mov dword [ebp - 0x20], eax
fild dword [ebp - 0x20]
fdivp st(2)
fsub st(1), st(0)
fxch st(1)
fst dword [ebp - 0xc4]
fld dword [0x10074908]
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x100468c5
fld dword [0x100748c0]
fcom st(2)
fnstsw ax
test ah, 5
jp 0x100468ba
fstp st(1)
fstp st(1)
fst dword [ebp - 0xc4]
jmp 0x100468d1
fstp st(0)
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x100468cf
fstp st(1)
fst dword [ebp - 0xc4]
jmp 0x100468d1
fstp st(0)
fmul dword [0x10074674]
faddp st(1)
fstp dword [edi + 0xe8]
test ebx, ebx
jne 0x100468fc
mov ecx, dword [ebp - 0x6c]
lea eax, [ecx*4]
push eax
push dword [ebp - 0x78]
push dword [ebp - 0x28]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ebx, dword [ebp - 0x10]
test ebx, ebx
jle 0x10046a83
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp - 0x1c]
bsr eax, dword [ecx + 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ecx + 0x14]
sub eax, dword [ebp - 0x20]
add eax, 2
cmp eax, dword [ebp - 0x74]
jg 0x10046a52
test edx, edx
jne 0x10046a52
cmp dword [edi + 0x18], 5
jl 0x10046a52
test esi, esi
jne 0x10046a52
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x10046a52
push dword [ebp - 8]
mov esi, dword [ebp - 0x18]
push esi
push eax
push dword [ebp - 0x88]
push dword [ebp - 0x84]
push dword [ebp - 0x78]
call fcn.10048e90
add esp, 0x18
test eax, eax
je 0x10046a57
push dword [edi + 0x48]
mov eax, dword [ebp - 0x90]
push dword [edi + 0x1c]
mov dword [ebp - 0x1c], 1
push ebx
push dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x24]
push dword [ebp - 8]
mov dword [ebp - 0x44], eax
push ebx
push dword [ebp - 0x2c]
push eax
push dword [ebp - 0x14]
call fcn.10047ec0
push dword [edi + 0x48]
push dword [ebp - 0x10]
push dword [ebp - 8]
push dword [ebp - 0x54]
push dword [ebp - 0x80]
push ebx
push dword [ebp - 0x14]
call fcn.10050890
add esp, 0x40
push dword [ebp - 8]
push dword [ebp - 0x78]
push dword [ebp - 0x80]
push esi
push dword [ebp - 0x54]
push dword [ebp - 0x14]
call fcn.10053790
mov edx, dword [ebp - 0x6c]
add esp, 0x18
mov esi, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, 4
jl 0x10046a28
fild dword [ebp - 0x10]
lea eax, [esi + 8]
add edx, 0xfffffffc
shr edx, 2
inc edx
fld dword [0x1007467c]
fmul st(1), st(0)
lea ecx, [edx*4]
fld dword [eax - 8]
fadd st(2)
fstp dword [eax - 8]
fld st(1)
fadd dword [eax - 4]
fstp dword [eax - 4]
fld dword [eax]
fadd st(2)
fstp dword [eax]
fld dword [eax + 4]
fadd st(2)
fstp dword [eax + 4]
add eax, 0x10
sub edx, 1
jne 0x100469fb
mov edx, dword [ebp - 0x6c]
fstp st(1)
jmp 0x10046a2e
fld dword [0x1007467c]
cmp ecx, edx
jge 0x10046a42
fimul dword [ebp - 0x10]
fld st(0)
fadd dword [esi + ecx*4]
fstp dword [esi + ecx*4]
inc ecx
cmp ecx, edx
jl 0x10046a35
fstp st(0)
fld dword [0x10074678]
fstp dword [ebp - 0xac]
jmp 0x10046a5a
mov ebx, dword [ebp - 0x24]
jmp 0x10046a60
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0x1c]
bsr eax, dword [ecx + 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ecx + 0x14]
sub eax, dword [ebp - 0x20]
add eax, 2
cmp eax, dword [ebp - 0x74]
jg 0x10046a86
push 3
push edx
push ecx
call fcn.10049c60
add esp, 0xc
jmp 0x10046a86
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x7c]
imul eax, dword [ebp - 8]
shl eax, 2
call fcn.1006ca60
mov esi, esp
push dword [ebp - 0x90]
mov dword [ebp - 0x40], esi
push dword [ebp - 8]
push dword [ebp - 0x54]
push dword [ebp - 0x80]
push esi
push ebx
push dword [ebp - 0x14]
call fcn.10051820
mov eax, dword [ebp - 0x88]
add esp, 0x1c
shl eax, 2
mov dword [ebp - 0x24], eax
call fcn.1006ca60
mov eax, dword [ebp - 8]
mov ebx, esp
mov ecx, dword [ebp - 0x50]
shl eax, 4
sub eax, dword [ebp - 8]
cmp ecx, eax
mov dword [ebp - 0x38], ebx
mov eax, dword [ebp - 0xc]
jl 0x10046b4e
test eax, eax
jne 0x10046b52
cmp dword [edi + 0x18], 2
jl 0x10046b86
cmp dword [edi + 0x40], eax
jne 0x10046b86
mov eax, 0x500
cdq
idiv ecx
add eax, 2
cmp eax, 5
jge 0x10046b0b
mov eax, 5
push dword [ebp - 0x34]
fld dword [ebp - 0xac]
mov edi, dword [ebp - 0x54]
push ecx
fstp dword [esp]
push dword [ebp - 0x10]
push dword [ebp - 0x7c]
push esi
push eax
push ebx
push dword [ebp - 0x1c]
push edi
push dword [ebp - 0x14]
call fcn.100494f0
mov esi, dword [ebp - 0x18]
add esp, 0x28
mov dword [ebp - 0x2c], eax
mov edx, edi
cmp edi, esi
jge 0x10046b9d
nop
mov ecx, dword [ebx + edi*4 - 4]
mov dword [ebx + edx*4], ecx
inc edx
cmp edx, esi
jl 0x10046b40
jmp 0x10046b9d
test eax, eax
je 0x10046b86
cmp dword [ebp - 0x48], 0
je 0x10046b66
mov esi, dword [ebp - 0x18]
test esi, esi
jle 0x10046b96
mov eax, 1
jmp 0x10046b90
test eax, eax
je 0x10046b86
cmp ecx, 0xf
jge 0x10046b86
mov esi, dword [ebp - 0x18]
test esi, esi
jle 0x10046b7e
mov ecx, esi
xor eax, eax
mov edi, ebx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
jmp 0x10046b9d
mov esi, dword [ebp - 0x18]
test esi, esi
jle 0x10046b96
mov eax, dword [ebp - 0x1c]
mov ecx, esi
mov edi, ebx
rep stosd dword es:[edi], eax
mov dword [ebp - 0x2c], 0
mov ecx, dword [ebp - 0x6c]
lea eax, [ecx*4]
call fcn.1006ca60
mov edi, dword [ebp - 0xc]
xor ecx, ecx
mov eax, dword [ebp - 0x78]
fld dword [0x10074684]
fld dword [0x10074870]
mov edx, dword [ebp - 0x24]
mov ebx, dword [ebp - 8]
lea eax, [eax + edi*4]
mov dword [ebp - 0x3c], esp
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x34], eax
cmp edi, esi
jge 0x10046c2b
mov edi, dword [ebp - 0x84]
mov ecx, eax
mov ebx, dword [ebp - 0xd0]
sub edi, dword [ebp - 0xd0]
sub ebx, dword [ebp - 0x78]
sub esi, dword [ebp - 0xc]
fld dword [ecx]
lea edx, [ebx + ecx]
fld st(0)
fsub dword [edx + edi]
fabs
fcomp st(3)
fnstsw ax
test ah, 5
jp 0x10046c0f
fld dword [edx]
fmul st(2)
fsubp st(1)
fstp dword [ecx]
jmp 0x10046c11
fstp st(0)
add ecx, 4
sub esi, 1
jne 0x10046bf0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
inc ecx
add eax, edx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x34], eax
cmp ecx, ebx
jl 0x10046bd2
mov ecx, dword [ebp + 8]
xor eax, eax
mov esi, dword [ebp - 0x10]
fstp st(1)
mov edi, dword [ebp + 0x1c]
fstp st(0)
push dword [ecx + 0x40]
cmp dword [ecx + 0x18], 4
push dword [ecx + 0x38]
setge al
push eax
lea eax, [ecx + 0x54]
push eax
push dword [ecx + 0xc]
push dword [ebp - 0x70]
push esi
push ebx
push edi
push dword [ebp - 0x3c]
push dword [ebp - 0x74]
push dword [ebp - 0x84]
push dword [ebp - 0x78]
push dword [ebp - 0x54]
push dword [ebp - 0x18]
push dword [ebp - 0xc]
push dword [ebp - 0x14]
call fcn.10053860
bsr eax, dword [edi + 0x1c]
mov ebx, dword [edi + 4]
xor edx, edx
mov dword [ebp - 0x20], eax
add esp, 0x44
mov eax, dword [edi + 0x14]
sub eax, dword [ebp - 0x20]
shl ebx, 3
cmp dword [ebp - 0x1c], edx
sete dl
lea ecx, [eax - 1]
lea edx, [edx*2 + 2]
test esi, esi
jle 0x10046cbb
add eax, edx
cmp eax, ebx
ja 0x10046cbb
mov eax, 1
jmp 0x10046cbd
xor eax, eax
sub ebx, eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x20], ebx
xor eax, eax
mov ebx, dword [ebp - 0xc]
xor edi, edi
mov esi, ebx
mov dword [ebp - 0x34], eax
cmp ebx, dword [ebp - 0x18]
jge 0x10046d2d
mov ebx, dword [ebp - 0x1c]
neg ebx
sbb ebx, ebx
lea ecx, [ecx]
lea eax, [edx + ecx]
cmp eax, dword [ebp - 0x20]
ja 0x10046d1b
push edx
mov edx, dword [ebp - 0x38]
mov eax, dword [edx + esi*4]
xor eax, edi
mov edi, dword [ebp + 0x1c]
push eax
push edi
call fcn.10049c60
bsr eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x14]
add esp, 0xc
sub ecx, eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x38]
dec ecx
mov edi, dword [eax + esi*4]
mov eax, dword [ebp - 0x34]
or eax, edi
mov dword [ebp - 0x34], eax
jmp 0x10046d24
mov eax, dword [ebp - 0x38]
mov dword [eax + esi*4], edi
mov eax, dword [ebp - 0x34]
inc esi
lea edx, [ebx + 5]
cmp esi, dword [ebp - 0x18]
jl 0x10046ce0
cmp dword [ebp - 0x48], 0
mov ebx, dword [ebp - 0x10]
je 0x10046d65
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x34]
lea ecx, [ecx + ebx*2]
mov al, byte [eax + ecx*4 + 0x10078ab0]
cmp al, byte [edx + ecx*4 + 0x10078ab2]
je 0x10046d65
mov edi, dword [ebp + 0x1c]
push 1
push dword [ebp - 0x2c]
push edi
call fcn.10049c60
mov edx, dword [ebp - 0x2c]
add esp, 0xc
jmp 0x10046d6a
mov edi, dword [ebp + 0x1c]
xor edx, edx
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x18]
cmp ecx, esi
jge 0x10046d93
mov eax, dword [ebp - 0x1c]
lea eax, [eax + ebx*2]
mov ebx, dword [ebp - 0x38]
lea edx, [edx + eax*2]
mov eax, dword [ebx + ecx*4]
movsx eax, byte [eax + edx*2 + 0x10078ab0]
mov dword [ebx + ecx*4], eax
inc ecx
cmp ecx, esi
jl 0x10046d80
bsr eax, dword [edi + 0x1c]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x20], eax
mov eax, dword [edi + 0x14]
sub eax, dword [ebp - 0x20]
add eax, 3
cmp eax, dword [ebp - 0x74]
jg 0x10046dd6
cmp dword [esi + 0x40], 0
je 0x10046fb8
mov dword [esi + 0x64], 0
mov dword [esi + 0x50], 2
push 5
push 0x100746f4
push dword [esi + 0x50]
push edi
call fcn.10049f00
add esp, 0x10
mov edi, dword [ebp - 0x24]
mov eax, edi
call fcn.1006ca60
mov ebx, esp
lea eax, [esi + 0x78]
push eax
push dword [ebp - 0x64]
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0xa4]
push dword [esi + 0x40]
mov dword [ebp - 0x70], ebx
push eax
push dword [ebp - 0x50]
mov eax, dword [ebp - 0x14]
push dword [ebp - 0x10]
push dword [ebp - 0x94]
push dword [esi + 0x34]
push dword [esi + 0x2c]
push dword [ebp - 0x1c]
push dword [eax + 0x38]
push dword [esi + 0x3c]
push ebx
push dword [ebp - 8]
push dword [ebp - 0x18]
push dword [ebp - 0xc]
push dword [ebp - 0x88]
push dword [ebp - 0x28]
push dword [ebp - 0x78]
call fcn.10048340
add esp, 0x4c
cmp dword [esi + 0x40], 0
fstp dword [ebp - 0x54]
je 0x10046e5c
mov eax, 0x55555556
imul dword [ebp - 0x50]
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 8
jle 0x10046e5a
mov eax, 8
mov dword [ebx], eax
mov eax, edi
call fcn.1006ca60
mov eax, esp
push dword [ebp - 8]
mov dword [ebp - 0x28], eax
push dword [ebp - 0x10]
push eax
push dword [ebp - 0x14]
call fcn.1004eda0
push dword [ebp + 0x1c]
mov edi, 6
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x50], edi
call fcn.1004ea60
mov ecx, dword [ebp - 0xc]
mov ebx, eax
mov edx, dword [ebp - 0x18]
add esp, 0x14
mov dword [ebp - 0x30], ebx
mov eax, ecx
mov dword [ebp - 0x48], eax
cmp ecx, edx
jge 0x10047073
mov edx, dword [ebp - 0x70]
lea esi, [edx + ecx*4]
mov ecx, dword [ebp - 0x28]
sub ecx, edx
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x8c], ecx
lea ecx, [ecx]
mov ecx, dword [ebp - 0x94]
movsx edx, word [ecx + eax*2 + 2]
movsx eax, word [ecx + eax*2]
mov ecx, dword [ebp - 0x10]
sub edx, eax
imul edx, dword [ebp - 8]
shl edx, cl
mov ecx, 0x30
cmp edx, 0x30
jl 0x10046ee6
mov ecx, edx
lea eax, [edx*8]
mov dword [ebp - 0x90], eax
cmp eax, ecx
jl 0x10046f0c
mov dword [ebp - 0x90], 0x30
cmp edx, 0x30
jl 0x10046f0c
mov dword [ebp - 0x90], edx
mov esi, dword [ebp - 0x74]
mov ecx, edi
mov eax, dword [ebp - 0x30]
xor edx, edx
xor ebx, ebx
mov dword [ebp - 0x34], edx
lea edi, [esi*8]
mov esi, dword [ebp - 0x50]
sub edi, dword [ebp - 0x2c]
lea eax, [eax + esi*8]
mov esi, dword [ebp - 0x64]
cmp eax, edi
jge 0x10047050
jmp 0x10046f40
mov eax, dword [ebp - 0x8c]
cmp edx, dword [eax + esi]
jge 0x10046f93
mov esi, dword [esi]
xor eax, eax
cmp ebx, esi
push ecx
setl al
push eax
push dword [ebp + 0x1c]
call fcn.10049c60
push dword [ebp + 0x1c]
call fcn.1004ea60
mov edx, dword [ebp - 0x34]
add esp, 0x10
cmp ebx, esi
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x64]
jge 0x10046f93
mov ecx, dword [ebp - 0x90]
add eax, 8
add dword [ebp - 0x2c], ecx
add edx, ecx
sub edi, ecx
mov dword [ebp - 0x34], edx
inc ebx
mov ecx, 1
cmp eax, edi
jl 0x10046f40
mov edi, dword [ebp - 0x50]
test ebx, ebx
je 0x10047053
dec edi
mov dword [ebp - 0x50], edi
cmp edi, 2
jge 0x10047053
mov edi, 2
mov dword [ebp - 0x50], edi
jmp 0x10047053
cmp dword [ebp - 0xc], 0
je 0x10046fe6
cmp dword [esi + 0x18], 0
jne 0x10046fd0
mov dword [esi + 0x50], 0
jmp 0x10046dc3
cmp dword [ebp - 0x1c], 0
jne 0x10046dbc
mov dword [esi + 0x50], 3
jmp 0x10046dc3
cmp dword [ebp - 0x44], 0
jne 0x1004703a
cmp dword [esi + 0x18], 3
jl 0x1004703a
mov ecx, dword [ebp - 8]
lea eax, [ecx + ecx*4]
add eax, eax
cmp dword [ebp - 0x70], eax
jl 0x1004703a
push dword [ebp - 0x90]
xor eax, eax
cmp dword [ebp - 0x8c], eax
push ecx
push dword [ebp - 0x54]
setne al
push eax
lea eax, [esi + 0x64]
push eax
lea eax, [esi + 0x60]
push eax
push dword [esi + 0x50]
lea eax, [esi + 0x58]
push eax
push dword [ebp - 0x40]
push dword [ebp - 0x14]
call fcn.10053550
add esp, 0x28
mov dword [esi + 0x50], eax
jmp 0x10046dc3
cmp dword [esi + 0x18], 0
jne 0x10046dbc
mov dword [esi + 0x50], 0
jmp 0x10046dc3
mov edi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x48]
mov dword [esi], edx
inc eax
mov edx, dword [ebp - 0x18]
add esi, 4
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x64], esi
cmp eax, edx
jl 0x10046ec0
mov ebx, dword [ebp - 0x30]
mov esi, dword [ebp + 8]
cmp dword [ebp - 8], 2
jne 0x100471b0
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x10047149
mov eax, dword [ebp - 0x14]
mov ebx, 0xd
fld dword [0x10074660]
fld st(0)
mov eax, dword [eax + 0x20]
movsx esi, word [eax + 2]
lea edi, [eax + 2]
movsx edx, word [eax]
shl esi, cl
shl edx, cl
cmp edx, esi
jge 0x100470e6
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x40]
add eax, edx
lea eax, [ecx + eax*4]
fld dword [ecx + edx*4]
inc edx
fld dword [eax]
add eax, 4
fld st(0)
fabs
fld st(2)
fabs
faddp st(1)
faddp st(4)
fld st(1)
fsub st(1)
fabs
fxch st(1)
faddp st(2)
fxch st(1)
fabs
faddp st(1)
faddp st(1)
cmp edx, esi
jl 0x100470b8
mov ecx, dword [ebp - 0x10]
mov eax, edi
sub ebx, 1
jne 0x1004709b
mov edx, dword [ebp - 0x14]
inc ecx
mov ebx, dword [ebp - 0x30]
mov esi, dword [ebp + 8]
mov eax, dword [edx + 0x20]
movsx edx, word [eax + 0x1a]
xor eax, eax
shl edx, cl
cmp dword [ebp - 0x10], 1
mov dword [ebp - 0x20], edx
setg al
mov dword [ebp - 0xbc], 1
lea eax, [eax*8 + 5]
add eax, edx
mov dword [ebp - 0x8c], eax
fimul dword [ebp - 0x8c]
fmul dword [0x10074884]
fild dword [ebp - 0x20]
fmulp st(2)
fcompp
fnstsw ax
test ah, 0x41
je 0x10047149
mov dword [ebp - 0xbc], 0
push dword [esi + 0xe0]
mov eax, 0x10624dd3
imul dword [ebp - 0x98]
push 0x15
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x8c], eax
fild dword [ebp - 0x8c]
push 0x10074758
push 0x10074700
push ecx
fstp dword [esp]
call fcn.10051410
mov edi, dword [ebp - 0xc]
add esp, 0x14
mov dword [esi + 0xe0], eax
mov ecx, edi
cmp edi, eax
jg 0x10047199
mov ecx, eax
mov edx, dword [ebp - 0x18]
cmp edx, ecx
jge 0x100471a4
mov eax, edx
jmp 0x100471aa
cmp edi, eax
jle 0x100471aa
mov eax, edi
mov dword [esi + 0xe0], eax
mov eax, dword [ebp - 0x74]
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x94], 5
lea ecx, [eax*8]
sub ecx, edi
lea eax, [ebx + 0x30]
cmp eax, ecx
jg 0x10047264
cmp dword [ebp - 0xc], 0
jg 0x10047230
cmp dword [esi + 0x40], 0
jne 0x10047230
push dword [esi + 0x48]
fld dword [ebp - 0x5c]
lea eax, [esi + 0xdc]
push dword [ebp - 0x98]
push ecx
fstp dword [esp]
push dword [esi + 0xe0]
fld dword [ebp - 0xac]
push ecx
fstp dword [esp]
push eax
lea eax, [esi + 0x78]
push eax
push dword [ebp - 0x7c]
push dword [ebp - 8]
push dword [ebp - 0x10]
push edx
push dword [ebp - 0x78]
push dword [ebp - 0x40]
push dword [ebp - 0x14]
call fcn.10045860
add esp, 0x38
mov dword [ebp - 0x94], eax
mov edi, eax
jmp 0x10047243
fldz
mov edi, 5
fstp dword [esi + 0xdc]
mov dword [ebp - 0x94], edi
mov ebx, dword [ebp + 0x1c]
push 7
push str.wmW_
push edi
push ebx
call fcn.10049f00
push ebx
call fcn.1004ea60
mov edi, dword [ebp - 0x2c]
add esp, 0x14
mov esi, eax
jmp 0x10047267
mov esi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0xa8]
test ebx, ebx
jle 0x100474f2
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc0]
mov edx, dword [eax + 0x24]
mov eax, 0x4fb
sub edx, dword [ebp - 0x10]
sar eax, cl
mov dword [ebp - 0x20], edx
cmp dword [ebp + 0x18], eax
jl 0x10047296
mov dword [ebp + 0x18], eax
cmp dword [ebp - 0xc], 0
mov eax, dword [ebp - 8]
jne 0x100472af
lea eax, [eax + eax*4]
shl eax, 6
sub ebx, eax
sub ebx, 0xa0
jmp 0x100472c4
lea ecx, [eax + eax*8]
mov eax, ebx
shl ecx, 3
xor ebx, ebx
sub eax, ecx
add eax, 0xffffffe0
sets bl
dec ebx
and ebx, eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
mov dword [ebp - 0x8c], ecx
test ecx, ecx
je 0x100472e9
mov eax, dword [eax + 0xd0]
mov ecx, edx
sar eax, cl
mov ecx, dword [ebp - 0x8c]
add ebx, eax
mov eax, dword [ebp + 8]
cmp dword [ebp - 0xc], 0
jne 0x10047365
mov edx, dword [ebp + 8]
sub esp, 8
fld dword [ebp - 0xc4]
xor eax, eax
cmp dword [edx + 0xe4], eax
fstp dword [esp + 4]
fld dword [ebp - 0x58]
setne al
fstp dword [esp]
fld dword [ebp - 0x54]
push eax
push dword [edx + 0x40]
lea eax, [edx + 0x78]
push ecx
fstp dword [esp]
push dword [ebp - 0xb0]
fld dword [ebp - 0xac]
push ecx
fstp dword [esp]
push dword [ebp - 0xa4]
fld dword [edx + 0xdc]
push ecx
fstp dword [esp]
push ecx
push dword [edx + 0xe0]
push dword [ebp - 8]
push dword [edx + 0x5c]
push dword [ebp - 0x98]
push dword [ebp - 0x10]
push ebx
push eax
push dword [ebp - 0x14]
call fcn.10048090
add esp, 0x48
mov ebx, eax
jmp 0x100473c2
mov edx, dword [eax + 0xb4]
mov ecx, dword [ebp - 0xc0]
cmp edx, 0x64
jge 0x10047382
mov eax, 0x60
sar eax, cl
add ebx, eax
cmp edx, 0x64
jle 0x1004738d
mov eax, 0x90
sar eax, cl
sub ebx, eax
fld dword [ebp - 0xac]
fld st(0)
fsub dword [0x10074870]
fmul dword [0x100748ec]
call fcn.1006caa0
fcomp dword [0x10074880]
add ebx, eax
fnstsw ax
test ah, 0x41
jne 0x100473c2
cmp ebx, 0x190
jg 0x100473c2
mov ebx, 0x190
lea eax, [esi + 0x3f]
add ebx, esi
add eax, edi
sar eax, 6
add eax, 2
cmp dword [ebp - 0xc], 0
je 0x100473ec
mov ecx, dword [ebp - 0xb4]
add ecx, 0x167
add ecx, edi
sar ecx, 6
cmp eax, ecx
jg 0x100473ec
mov eax, ecx
lea edi, [ebx + 0x20]
sar edi, 6
cmp eax, edi
jle 0x100473f8
mov edi, eax
mov eax, dword [ebp + 0x18]
cmp eax, edi
jge 0x10047401
mov edi, eax
sub ebx, dword [ebp - 0xa8]
mov ecx, edi
mov eax, dword [ebp - 0x9c]
shl ecx, 6
test eax, eax
je 0x1004741e
mov edi, 2
lea ecx, [edi + 0x7e]
mov esi, dword [ebp + 8]
neg eax
sbb edx, edx
not edx
mov eax, dword [esi + 0xd4]
and edx, ebx
cmp eax, 0x3ca
jge 0x10047452
inc eax
mov dword [esi + 0xd4], eax
add eax, 0x14
mov dword [ebp - 0xa4], eax
fild dword [ebp - 0xa4]
fld1
fdivrp st(1)
jmp 0x10047458
fld dword [0x100746c4]
cmp dword [esi + 0x34], 0
je 0x100474d8
sub ecx, dword [ebp - 0xa8]
add dword [esi + 0xc8], ecx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp + 8]
mov ebx, dword [esi + 0xc8]
mov esi, dword [esi + 0xcc]
shl edx, cl
sub edx, esi
sub edx, dword [eax + 0xd0]
mov dword [ebp - 0xa4], edx
fimul dword [ebp - 0xa4]
call fcn.1006caa0
lea ecx, [eax + esi]
mov esi, dword [ebp + 8]
mov dword [esi + 0xcc], ecx
neg ecx
mov dword [esi + 0xd0], ecx
test ebx, ebx
jns 0x100474da
mov ecx, dword [ebp - 0x9c]
mov eax, ebx
cdq
and edx, 0x3f
mov dword [esi + 0xc8], 0
add eax, edx
sar eax, 6
neg eax
neg ecx
sbb ecx, ecx
not ecx
and ecx, eax
add edi, ecx
jmp 0x100474da
fstp st(0)
mov eax, dword [ebp + 0x18]
cmp eax, edi
jl 0x100474e6
mov eax, edi
mov dword [ebp + 0x18], eax
push eax
push dword [ebp + 0x1c]
call fcn.1004a120
add esp, 8
mov ebx, dword [ebp - 0x24]
mov eax, ebx
call fcn.1006ca60
mov esi, esp
mov eax, ebx
mov dword [ebp - 0x48], esi
call fcn.1006ca60
mov eax, ebx
mov dword [ebp - 0xb4], esp
call fcn.1006ca60
mov edi, dword [ebp + 0x18]
mov dword [ebp - 0xb0], esp
push dword [ebp + 0x1c]
shl edi, 6
mov dword [ebp - 0xa4], edi
call fcn.1004ea60
mov edx, edi
add esp, 4
sub edx, eax
dec edx
cmp dword [ebp - 0x1c], 0
je 0x10047557
mov eax, dword [ebp - 0x10]
cmp eax, 2
jl 0x10047557
lea eax, [eax*8 + 0x10]
cmp edx, eax
jl 0x10047557
mov ebx, 8
jmp 0x10047559
xor ebx, ebx
mov ecx, dword [ebp - 0xd4]
sub edx, ebx
mov eax, dword [ebp - 0x18]
dec eax
cmp dword [ecx], 0
je 0x100475cf
mov ecx, dword [ebp - 8]
imul eax, ecx, 0x7d00
cmp dword [ebp - 0x98], eax
jge 0x10047582
mov ecx, 0xd
jmp 0x100475c0
imul eax, ecx, 0xbb80
cmp dword [ebp - 0x98], eax
jge 0x10047597
mov ecx, 0x10
jmp 0x100475c0
imul eax, ecx, 0xea60
cmp dword [ebp - 0x98], eax
jge 0x100475ac
mov ecx, 0x12
jmp 0x100475c0
imul eax, ecx, 0x13880
xor ecx, ecx
cmp dword [ebp - 0x98], eax
setge cl
add ecx, 0x13
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x94]
cmp eax, ecx
jg 0x100475cf
mov eax, ecx
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x40], 0
je 0x100475dd
mov eax, 1
push eax
mov eax, dword [ebp + 8]
add ecx, 0xe0
mov edi, dword [ebp - 0x18]
push dword [eax + 0x5c]
lea eax, [ebp - 0xdc]
push 1
push dword [ebp + 0x1c]
push dword [ebp - 0x10]
push dword [ebp - 8]
push dword [ebp - 0xb0]
push esi
push dword [ebp - 0xb4]
push eax
push edx
lea eax, [ebp - 0xbc]
push eax
push ecx
push dword [ebp - 0x94]
push dword [ebp - 0x28]
push dword [ebp - 0x70]
push edi
push dword [ebp - 0xc]
push dword [ebp - 0x14]
call fcn.1004fa30
mov ecx, dword [ebp + 8]
mov esi, eax
add esp, 0x4c
mov eax, dword [ecx + 0x5c]
test eax, eax
je 0x1004765c
lea ecx, [eax - 1]
mov edx, ecx
cmp ecx, esi
jg 0x10047647
mov edx, esi
inc eax
cmp eax, edx
jl 0x10047654
mov eax, ecx
cmp ecx, esi
jg 0x10047654
mov eax, esi
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x5c], eax
jmp 0x1004765f
mov dword [ecx + 0x5c], esi
push dword [ebp - 8]
push dword [ebp + 0x1c]
push dword [ebp - 0x48]
push dword [ebp - 0x3c]
push dword [ebp - 0x84]
push edi
push dword [ebp - 0xc]
push dword [ebp - 0x14]
call fcn.10054090
mov eax, dword [ebp - 0x6c]
add esp, 0x20
call fcn.1006ca60
cmp dword [ebp - 8], 2
mov ecx, esp
jne 0x1004769b
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x7c]
lea eax, [eax + edx*4]
jmp 0x1004769d
xor eax, eax
mov edi, dword [ebp + 8]
mov edx, dword [ebp + 8]
add edx, 0x4c
push dword [edi + 0x44]
push dword [edi + 0x48]
push dword [edi + 0x18]
mov edi, dword [ebp - 0xa4]
push edx
mov edx, dword [ebp - 0x38]
sub edi, ebx
push esi
push dword [ebp - 0x10]
mov esi, dword [ebp + 8]
push dword [ebp + 0x1c]
push dword [ebp - 0xdc]
push edi
push edx
push dword [esi + 0xe0]
mov edi, dword [ebp - 0x18]
push dword [ebp - 0xbc]
push dword [esi + 0x50]
push dword [ebp - 0x44]
push dword [ebp - 0xb4]
push dword [ebp - 0x80]
push ecx
push eax
push dword [ebp - 0x40]
push edi
push dword [ebp - 0xc]
push dword [ebp - 0x14]
push 1
call fcn.10051960
add esp, 0x5c
test ebx, ebx
je 0x1004771c
xor eax, eax
cmp dword [esi + 0x74], 2
push 1
setl al
push eax
push dword [ebp + 0x1c]
call fcn.10049ca0
add esp, 0xc
mov edx, dword [ebp + 0x1c]
push dword [ebp - 8]
push edx
bsr eax, dword [edx + 0x1c]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp + 0x18]
lea ecx, [eax*8]
mov eax, dword [ebp - 0xd4]
sub ecx, dword [edx + 0x14]
inc eax
add eax, ecx
push eax
push dword [ebp - 0xb0]
push dword [ebp - 0x48]
push dword [ebp - 0x3c]
push dword [ebp - 0x84]
push edi
push dword [ebp - 0xc]
push dword [ebp - 0x14]
call fcn.10053f80
push dword [ebp - 0xc8]
mov esi, dword [ebp - 0xd0]
push 0
push esi
call sub.VCRUNTIME140.dll_memset
mov edx, dword [ebp - 0xc]
add esp, 0x34
fld dword [0x100748fc]
xor ebx, ebx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
lea edi, [esi + edx*4]
mov esi, dword [ebp - 0x24]
cmp edx, eax
jge 0x100477ea
mov esi, dword [ebp - 0x3c]
mov edx, eax
sub esi, dword [ebp - 0xd0]
mov ecx, edi
sub edx, dword [ebp - 0xc]
fld dword [0x1007467c]
fld dword [esi + ecx]
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x100477ce
fcom st(2)
fnstsw ax
test ah, 5
jp 0x100477c5
fstp st(0)
fld st(1)
jmp 0x100477d2
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x100477d2
fstp st(0)
fld st(0)
fstp dword [ecx]
add ecx, 4
sub edx, 1
jne 0x100477aa
mov esi, dword [ebp - 0x24]
fstp st(0)
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
inc ebx
add edi, esi
cmp ebx, ecx
jl 0x10047790
cmp dword [ebp - 0x9c], 0
fstp st(0)
mov ebx, dword [ebp - 0x84]
je 0x10047817
mov eax, dword [ebp - 0x6c]
test eax, eax
jle 0x10047817
mov ecx, eax
mov edi, ebx
mov eax, 0xc1e00000
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 8]
cmp dword [ebp - 0x4c], 2
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x68]
fld dword [ebp - 0xa0]
mov dword [eax + 0x68], edx
mov edx, dword [ebp - 0x60]
fstp dword [eax + 0x6c]
mov dword [eax + 0x70], edx
jne 0x10047848
cmp ecx, 1
jne 0x10047848
push esi
lea eax, [esi + ebx]
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp dword [ebp - 0x1c], 0
jne 0x10047878
push dword [ebp - 0xc8]
mov edi, dword [ebp - 0xcc]
push edi
push dword [ebp - 0xb8]
call sub.VCRUNTIME140.dll_memcpy
push dword [ebp - 0xc8]
push ebx
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0x18
jmp 0x100478ae
mov edi, dword [ebp - 0xe0]
test edi, edi
jle 0x100478ae
mov ecx, dword [ebp - 0xcc]
mov edx, ebx
sub edx, ecx
lea esp, [esp]
fld dword [ecx]
fld dword [edx + ecx]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x100478a2
fstp st(0)
jmp 0x100478a4
fstp st(1)
fstp dword [ecx]
add ecx, 4
sub edi, 1
jne 0x10047890
mov eax, dword [ebp - 0xb8]
xor edi, edi
fld dword [0x100746d8]
mov ebx, eax
add eax, dword [ebp - 0xe4]
mov dword [ebp - 0xa0], eax
mov ecx, dword [ebp - 0xc]
fldz
test ecx, ecx
jle 0x1004790e
mov edx, dword [ebp - 0x84]
mov eax, ebx
mov esi, dword [ebp - 0xcc]
sub edx, dword [ebp - 0xb8]
sub esi, dword [ebp - 0xb8]
jmp 0x100478f1
fxch st(1)
fst dword [edx + eax]
fxch st(1)
fst dword [eax]
fst dword [esi + eax]
add eax, 4
sub ecx, 1
jne 0x100478ef
mov eax, dword [ebp - 0xa0]
mov esi, dword [ebp - 0x24]
jmp 0x10047910
fxch st(1)
mov ecx, dword [ebp - 0x88]
cmp dword [ebp - 0x18], ecx
jge 0x10047953
mov edx, dword [ebp - 0x84]
mov esi, dword [ebp - 0xcc]
sub edx, dword [ebp - 0xb8]
sub esi, dword [ebp - 0xb8]
sub ecx, dword [ebp - 0x18]
fxch st(1)
fst dword [eax + edx]
fxch st(1)
fst dword [eax]
fst dword [eax + esi]
add eax, 4
sub ecx, 1
jne 0x10047936
mov eax, dword [ebp - 0xa0]
mov esi, dword [ebp - 0x24]
inc edi
add eax, esi
add ebx, esi
mov dword [ebp - 0xa0], eax
fstp st(1)
cmp edi, dword [ebp - 0x4c]
jl 0x100478ca
cmp dword [ebp - 0x1c], 0
fstp st(0)
jne 0x10047986
cmp dword [ebp - 0xd8], 0
jne 0x10047986
mov eax, dword [ebp + 8]
mov dword [eax + 0x74], 0
jmp 0x1004798c
mov eax, dword [ebp + 8]
inc dword [eax + 0x74]
mov ebx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 8]
push ebx
mov eax, dword [ebx + 0x1c]
mov dword [ecx + 0x4c], eax
call fcn.10049da0
add esp, 4
cmp dword [ebx + 0x2c], 0
je 0x100479ae
mov eax, 0xfffffffd
jmp 0x100479b6
mov eax, dword [ebp + 0x18]
jmp 0x100479b6
or eax, 0xffffffff
lea esp, [ebp - 0x120]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1006bfcb
mov esp, ebp
pop ebp
ret