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

Disassembly:
push 0xffffffffffffffff
push 0x469611
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x254
mov eax, dword [esp + 0x274]
mov edx, dword [esp + 0x26c]
push ebx
push ebp
push esi
push edi
mov ebx, ecx
mov ecx, dword [esp + 0x280]
push eax
mov eax, dword [esp + 0x27c]
push ecx
push edx
push eax
mov ecx, ebx
mov dword [esp + 0x38], ebx
call fcn.00415500
mov edx, dword [esp + 0x288]
mov eax, 0xd
xor ecx, ecx
mov dword [ebx], 0x472138
mov dword [ebx + 0xdb8], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x54], eax
mov eax, dword [ebx + 0x20]
cmp eax, ecx
mov dword [esp + 0x26c], ecx
mov dword [ebx + 0x24], edx
mov dword [ebx + 0x5b0], ecx
mov dword [ebx + 0xdc8], ecx
mov dword [esp + 0x24], eax
je 0x4164ca
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 4]
mov ebp, 0x2d
mov dword [esp + 0x10], ecx
jmp 0x416330
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
lea eax, [edx + ebp]
cdq
sub eax, edx
mov edi, eax
sar edi, 1
mov esi, dword [edi*8 + 0x4936a8]
lea esp, [esp]
mov dl, byte [ecx]
mov al, dl
cmp dl, byte [esi]
jne 0x416374
test al, al
je 0x416370
mov al, byte [ecx + 1]
mov dl, al
cmp al, byte [esi + 1]
jne 0x416374
add ecx, 2
add esi, 2
test dl, dl
jne 0x416350
xor eax, eax
jmp 0x416379
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jl 0x416383
mov dword [esp + 0x1c], edi
jmp 0x416389
mov ebp, edi
mov edi, dword [esp + 0x1c]
mov ecx, ebp
sub ecx, edi
cmp ecx, 1
jg 0x416330
mov edx, dword [esp + 0x24]
mov esi, dword [edi*8 + 0x4936a8]
mov eax, dword [edx + 4]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4163c4
test cl, cl
je 0x4163c0
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4163c4
add eax, 2
add esi, 2
test cl, cl
jne 0x4163a0
xor eax, eax
jmp 0x4163c9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x416424
mov esi, dword [esp + 0x24]
mov ecx, esi
call fcn.00420d60
push esi
call fcn.004588cd
push 8
call fcn.004588d2
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x26c], 1
je 0x41640d
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx*8 + 0x4936ac]
push edx
mov ecx, eax
call fcn.00420c90
jmp 0x41640f
xor eax, eax
mov byte [esp + 0x26c], 0
mov dword [ebx + 0x20], eax
mov dword [ebx + 0xdc8], 1
mov ebp, 0x4936ac
lea esp, [esp]
mov eax, dword [ebx + 0xdc8]
test eax, eax
jne 0x4164ca
mov edi, dword [ebx + 0x20]
mov esi, dword [ebp - 4]
mov eax, dword [edi + 4]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x41646b
test cl, cl
je 0x416467
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x41646b
add eax, 2
add esi, 2
test cl, cl
jne 0x416447
xor eax, eax
jmp 0x416470
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x41647e
mov dword [ebx + 0xdc8], 1
mov esi, dword [ebp]
mov eax, dword [edi + 4]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4164a8
test cl, cl
je 0x4164a4
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4164a8
add eax, 2
add esi, 2
test cl, cl
jne 0x416484
xor eax, eax
jmp 0x4164ad
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4164bb
mov dword [ebx + 0xdc8], 1
add ebp, 8
cmp ebp, 0x493814
jl 0x416430
mov eax, dword [ebx + 0x20]
test eax, eax
mov dword [esp + 0x24], 0
je 0x41652d
mov eax, dword [eax + 4]
xor ebp, ebp
mov dword [esp + 0x10], eax
mov edi, 0x48f9c0
mov esi, dword [edi]
mov eax, dword [esp + 0x10]
lea ecx, [ecx]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x416514
test cl, cl
je 0x416510
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x416514
add eax, 2
add esi, 2
test cl, cl
jne 0x4164f0
xor eax, eax
jmp 0x416519
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4165ac
add edi, 0x18
inc ebp
cmp edi, 0x48fb10
jl 0x4164e7
fld qword [0x472130]
fstp qword [ebx + 0x98]
fld qword [0x472128]
fstp qword [ebx + 0xa0]
fld qword [0x46e5a8]
fstp qword [ebx + 0x88]
fld qword [0x46e5a8]
fstp qword [ebx + 0x80]
fld qword [0x46e5a8]
fstp qword [ebx + 0x78]
fld qword [0x46e5a8]
fstp qword [ebx + 0x70]
mov ebp, dword [esp + 0x28c]
mov eax, dword [esp + 0x274]
push ebp
push eax
mov ecx, ebx
call fcn.004155a0
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x41666d
mov ecx, dword [ebx + 0x24]
cmp ecx, 1
jne 0x416652
push 0x471f8c
push 0x471f84
jmp 0x41665e
lea eax, [ebp + ebp*2]
lea eax, [eax*8 + 0x48f9c0]
test eax, eax
mov dword [esp + 0x24], eax
je 0x41652d
movsx ecx, word [eax + 8]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x470a88]
fstp qword [ebx + 0x98]
movsx edx, word [eax + 0xa]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x470a88]
fstp qword [ebx + 0xa0]
movsx ecx, word [eax + 0xc]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x470a88]
fstp qword [ebx + 0x70]
movsx edx, word [eax + 0xe]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x470a88]
fstp qword [ebx + 0x78]
movsx ecx, word [eax + 0x10]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x470a88]
fstp qword [ebx + 0x80]
movsx edx, word [eax + 0x12]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x470a88]
fstp qword [ebx + 0x88]
jmp 0x41656f
cmp ecx, 4
jne 0x41666d
push 0
push 0x471f7c
mov ecx, dword [0x4994bc]
push eax
call fcn.0041edf0
mov dword [ebx + 0x38], eax
fld qword [0x470ac0]
lea edi, [ebx + 0x40]
fstp qword [ebx + 0x58]
lea ecx, [esp + 0x2c]
fld qword [0x470ac0]
push ecx
fstp qword [edi]
push 0x472118
fld qword [0x46e5a8]
mov ecx, ebp
fstp qword [ebx + 0x68]
fld qword [0x46e5a8]
fstp qword [ebx + 0x60]
fld qword [0x46e5a8]
fstp qword [ebx + 0x50]
fld qword [0x46e5a8]
fstp qword [ebx + 0x48]
call fcn.00409ec0
cmp dword [eax], 6
jne 0x41671d
xor esi, esi
lea ecx, [ecx]
mov edx, dword [esp + 0x2c]
cmp edx, 6
mov ecx, dword [esp + 0x34]
je 0x4166d1
xor eax, eax
jmp 0x4166d4
mov eax, dword [ecx + 0xc]
cmp esi, eax
jge 0x41671d
cmp edx, 6
je 0x4166e1
xor eax, eax
jmp 0x4166ec
lea edx, [esp + 0x44]
push edx
push esi
call fcn.004011a0
mov eax, dword [eax]
cmp eax, 1
je 0x4166f8
cmp eax, 2
jne 0x41670b
cmp dword [esp + 0x44], 1
jne 0x416705
fild dword [esp + 0x4c]
jmp 0x416709
fld qword [esp + 0x4c]
fstp qword [edi]
lea ecx, [esp + 0x44]
call fcn.00423a50
inc esi
add edi, 8
cmp esi, 6
jl 0x4166c0
lea ecx, [esp + 0x2c]
call fcn.00423a50
cmp dword [ebx + 0x24], 3
jne 0x41675a
lea esi, [ebx + 0xdb8]
push esi
push 0x47210c
mov ecx, ebp
call fcn.00409ec0
cmp dword [esi], 7
je 0x41675a
push 0x4720d4
push 0xffffffffffffffff
call fcn.00401070
add esp, 8
mov ecx, esi
call fcn.00423a50
mov ecx, dword [esp + 0x28c]
lea eax, [esp + 0x2c]
push eax
xor ebp, ebp
push 0x4720c8
mov dword [ebx + 0x5b4], ebp
mov dword [esp + 0x18], ebp
call fcn.00409ec0
mov eax, dword [esp + 0x2c]
cmp eax, 7
jne 0x41681e
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x38]
push 0x4720b8
call fcn.00409ec0
cmp dword [esp + 0x44], 4
jne 0x416813
mov eax, dword [esp + 0x4c]
mov edi, 0x4720a4
mov esi, eax
mov ecx, 0x11
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4167c0
mov ebp, 0x48fb70
jmp 0x416809
mov edi, 0x472090
mov esi, eax
mov ecx, 0x12
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4167d9
mov ebp, 0x48ff70
jmp 0x416809
mov edi, 0x472080
mov esi, eax
mov ecx, 0x10
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4167f2
mov ebp, 0x490370
jmp 0x416809
mov esi, eax
mov edi, 0x47206c
mov ecx, 0x11
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x416813
mov ebp, 0x490770
mov dword [ebx + 0x5b4], 1
lea ecx, [esp + 0x44]
call fcn.00423a50
jmp 0x416893
cmp eax, 4
jne 0x416893
mov eax, dword [esp + 0x34]
mov edi, 0x4720a4
mov esi, eax
mov ecx, 0x11
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x416840
mov ebp, 0x48fb70
jmp 0x416889
mov edi, 0x472090
mov esi, eax
mov ecx, 0x12
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x416859
mov ebp, 0x48ff70
jmp 0x416889
mov edi, 0x472080
mov esi, eax
mov ecx, 0x10
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x416872
mov ebp, 0x490370
jmp 0x416889
mov esi, eax
mov edi, 0x47206c
mov ecx, 0x11
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x416893
mov ebp, 0x490770
mov dword [ebx + 0x5b4], 1
mov eax, dword [ebx + 0x24]
cmp eax, 1
mov dword [esp + 0x20], 0
je 0x4168b1
cmp eax, 2
je 0x4168b1
cmp eax, 4
jne 0x416a0d
mov eax, dword [ebx + 0x38]
test eax, eax
jne 0x4168c7
mov ecx, dword [ebx + 0x30]
test ecx, ecx
jl 0x416a0d
test eax, eax
je 0x4168d5
lea ecx, [esp + 0x1c]
push ecx
mov ecx, ebx
call fcn.00415c20
jmp 0x4168e9
mov eax, dword [esp + 0x274]
lea edx, [esp + 0x1c]
push edx
push eax
mov ecx, ebx
call fcn.00415cd0
mov esi, eax
test esi, esi
mov dword [esp + 0x40], esi
je 0x416a0d
mov eax, dword [ebx + 0x24]
cmp eax, 1
jne 0x416928
push 0xc
call fcn.004588d2
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
mov byte [esp + 0x26c], 2
je 0x41697f
mov ecx, dword [esp + 0x1c]
push ecx
push esi
mov ecx, eax
call fcn.00409f70
jmp 0x416981
cmp eax, 2
jne 0x416956
push 0xc
call fcn.004588d2
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
mov byte [esp + 0x26c], 3
je 0x41697f
mov edx, dword [esp + 0x1c]
push edx
push esi
mov ecx, eax
call fcn.0040a6c0
jmp 0x416981
push 0x30
call fcn.004588d2
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
mov byte [esp + 0x26c], 4
je 0x41697f
mov ecx, dword [esp + 0x1c]
push ecx
push esi
mov ecx, eax
call fcn.0040acb0
jmp 0x416981
xor eax, eax
mov edi, eax
mov edx, dword [edi]
mov ecx, edi
mov byte [esp + 0x26c], 0
mov dword [esp + 0x20], edi
call dword [edx + 4]
test eax, eax
je 0x4169ef
mov esi, dword [ebx + 0x2c]
test esi, esi
je 0x4169b1
mov ecx, esi
call fcn.00420d60
push esi
call fcn.004588cd
add esp, 4
push 8
call fcn.004588d2
mov esi, eax
add esp, 4
mov dword [esp + 0x1c], esi
test esi, esi
mov byte [esp + 0x26c], 5
je 0x4169de
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
push eax
mov ecx, esi
call fcn.00420c90
jmp 0x4169e0
xor eax, eax
mov esi, dword [esp + 0x40]
mov byte [esp + 0x26c], 0
mov dword [ebx + 0x2c], eax
test ebp, ebp
jne 0x416a04
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 8]
mov ebp, eax
mov dword [esp + 0x10], 1
push esi
call fcn.004211d0
add esp, 4
test ebp, ebp
jne 0x416a2e
mov eax, dword [esp + 0x24]
test eax, eax
je 0x416a1e
mov ebp, dword [eax + 4]
jmp 0x416a2e
cmp dword [ebx + 0x24], 4
mov ebp, 0x48fb70
je 0x416a2e
mov ebp, 0x490770
xor esi, esi
lea edi, [ebx + 0xb0]
mov eax, dword [ebp + esi*4]
mov dword [edi], eax
mov al, byte [esp + 0x10]
test al, al
mov byte [ebx + esi + 0x4b0], al
je 0x416a5f
cmp dword [edi], 0
je 0x416a5f
mov ecx, dword [ebp + esi*4]
push ecx
call fcn.004211f0
add esp, 4
mov dword [edi], eax
inc esi
add edi, 4
cmp esi, 0x100
jl 0x416a36
cmp dword [esp + 0x2c], 7
jne 0x416b72
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x44]
push edx
push 0x472060
call fcn.00409ec0
mov edx, dword [esp + 0x44]
cmp edx, 6
jne 0x416b69
xor esi, esi
xor edi, edi
lea ebx, [ebx]
cmp edx, 6
mov ecx, dword [esp + 0x4c]
je 0x416aad
xor eax, eax
jmp 0x416ab0
mov eax, dword [ecx + 0xc]
cmp edi, eax
jge 0x416b69
cmp edx, 6
jne 0x416ac8
lea eax, [esp + 0x54]
push eax
push edi
call fcn.004011a0
mov eax, dword [esp + 0x54]
cmp eax, 1
jne 0x416ae5
mov esi, dword [esp + 0x5c]
lea ecx, [esp + 0x54]
call fcn.00423a50
mov edx, dword [esp + 0x44]
inc edi
jmp 0x416aa0
cmp eax, 4
jne 0x416b3d
cmp esi, 0x100
jge 0x416b29
mov al, byte [ebx + esi + 0x4b0]
test al, al
je 0x416b0d
mov ecx, dword [ebx + esi*4 + 0xb0]
push ecx
call fcn.004211d0
add esp, 4
mov edx, dword [esp + 0x5c]
push edx
call fcn.004211f0
mov dword [ebx + esi*4 + 0xb0], eax
add esp, 4
mov byte [ebx + esi + 0x4b0], 1
lea ecx, [esp + 0x54]
inc esi
call fcn.00423a50
mov edx, dword [esp + 0x44]
inc edi
jmp 0x416aa0
lea ecx, [esp + 0x54]
call fcn.00423a40
push eax
push 0x472028
push 0xffffffffffffffff
call fcn.00401070
add esp, 0xc
lea ecx, [esp + 0x54]
call fcn.00423a50
mov edx, dword [esp + 0x44]
inc edi
jmp 0x416aa0
lea ecx, [esp + 0x44]
call fcn.00423a50
lea ecx, [esp + 0x2c]
call fcn.00423a50
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x416b89
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [esp + 0x28c]
push 8
push ecx
mov ecx, ebx
call fcn.00415ac0
test eax, eax
mov dword [ebx + 0x5b0], eax
jne 0x416ed3
mov eax, dword [esp + 0x28]
xor ebx, ebx
add eax, 0xb0
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], eax
nop
mov edx, dword [esp + 0x1c]
mov ebp, dword [edx]
test ebp, ebp
je 0x416cd8
mov ecx, dword [0x4994bc]
push ebp
call fcn.0041ec60
test ax, ax
mov ecx, dword [esp + 0x20]
mov word [esp + ecx*2 + 0x64], ax
jne 0x416ce3
mov edi, 0x470964
mov esi, ebp
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x416ce3
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416c07
sub eax, edx
cmp eax, 3
jne 0x416c6e
movsx eax, byte [ebp]
push eax
call fcn.00457efd
add esp, 4
test eax, eax
je 0x416c6e
movsx ecx, byte [ebp + 1]
push ecx
call fcn.00457fea
add esp, 4
test eax, eax
je 0x416c6e
movsx edx, byte [ebp + 2]
push edx
call fcn.00457fea
add esp, 4
test eax, eax
je 0x416c6e
mov al, byte [ebp + 1]
cmp al, 0x61
jl 0x416c53
cmp al, 0x66
jle 0x416cc9
cmp al, 0x41
jl 0x416c5b
cmp al, 0x46
jle 0x416cc9
mov al, byte [ebp + 2]
cmp al, 0x61
jl 0x416c66
cmp al, 0x66
jle 0x416cc9
cmp al, 0x41
jl 0x416c6e
cmp al, 0x46
jle 0x416cc9
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416c73
sub eax, edx
cmp eax, 2
jne 0x416cd1
movsx eax, byte [ebp]
push eax
call fcn.00457fea
add esp, 4
test eax, eax
je 0x416cd1
movsx ecx, byte [ebp + 1]
push ecx
call fcn.00457fea
add esp, 4
test eax, eax
je 0x416cd1
mov al, byte [ebp]
cmp al, 0x61
jl 0x416cae
cmp al, 0x66
jle 0x416cc9
cmp al, 0x41
jl 0x416cb6
cmp al, 0x46
jle 0x416cc9
mov al, byte [ebp + 1]
cmp al, 0x61
jl 0x416cc1
cmp al, 0x66
jle 0x416cc9
cmp al, 0x41
jl 0x416cd1
cmp al, 0x46
jg 0x416cd1
mov dword [esp + 0x10], 1
mov ebx, 1
jmp 0x416ce3
mov edx, dword [esp + 0x20]
mov word [esp + edx*2 + 0x64], 0
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
inc eax
add edx, 4
cmp eax, 0x100
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edx
jl 0x416bc0
test ebx, ebx
je 0x416eba
mov eax, dword [0x4994bc]
mov ecx, dword [eax + 0x64]
test ecx, ecx
je 0x416eba
mov eax, dword [esp + 0x28]
xor ebx, ebx
add eax, 0xb0
mov dword [esp + 0x40], eax
lea esp, [esp]
mov ebp, dword [eax]
test ebp, ebp
je 0x416ea2
cmp word [esp + ebx*2 + 0x64], 0
jne 0x416ea2
mov edi, 0x470964
mov esi, ebp
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x416ea2
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416d61
sub eax, edx
mov esi, eax
mov eax, dword [esp + 0x10]
test eax, eax
mov dword [esp + 0x3c], 0xffffffff
je 0x416e23
cmp esi, 3
jne 0x416ddf
movsx eax, byte [ebp]
push eax
call fcn.00457efd
add esp, 4
test eax, eax
je 0x416e5c
movsx ecx, byte [ebp + 1]
lea esi, [ebp + 1]
push ecx
call fcn.00457fea
add esp, 4
test eax, eax
je 0x416e5c
movsx edx, byte [ebp + 2]
push edx
call fcn.00457fea
add esp, 4
test eax, eax
je 0x416e5c
lea eax, [esp + 0x3c]
push eax
push 0x46fdd0
push esi
call fcn.00458ec8
add esp, 0xc
jmp 0x416e8e
cmp esi, 2
jne 0x416e52
movsx ecx, byte [ebp]
push ecx
call fcn.00457fea
add esp, 4
test eax, eax
je 0x416e8e
movsx edx, byte [ebp + 1]
push edx
call fcn.00457fea
add esp, 4
test eax, eax
je 0x416e8e
lea eax, [esp + 0x3c]
push eax
push 0x46fdd0
push ebp
call fcn.00458ec8
add esp, 0xc
jmp 0x416e8e
cmp esi, 2
jl 0x416e52
cmp esi, 4
jg 0x416e52
movsx ecx, byte [ebp]
push ecx
call fcn.00457fb0
add esp, 4
test eax, eax
je 0x416e52
movsx edx, byte [ebp + 1]
push edx
call fcn.00457fb0
add esp, 4
test eax, eax
je 0x416e52
push ebp
jmp 0x416e82
cmp esi, 3
jl 0x416e8e
cmp esi, 5
jg 0x416e8e
movsx eax, byte [ebp + 1]
lea esi, [ebp + 1]
push eax
call fcn.00457fb0
add esp, 4
test eax, eax
je 0x416e8e
movsx ecx, byte [ebp + 2]
push ecx
call fcn.00457fb0
add esp, 4
test eax, eax
je 0x416e8e
push esi
call fcn.0045812a
add esp, 4
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
test eax, eax
jl 0x416ea2
cmp eax, 0xff
jg 0x416ea2
mov word [esp + ebx*2 + 0x64], ax
mov eax, dword [esp + 0x40]
inc ebx
add eax, 4
cmp ebx, 0x100
mov dword [esp + 0x40], eax
jl 0x416d30
lea edx, [esp + 0x64]
push edx
call fcn.00407220
mov ecx, dword [esp + 0x2c]
add esp, 4
mov dword [ecx + 0x5b0], eax
mov ebx, ecx
lea ebp, [ebx + 0x5b8]
mov eax, ebp
mov ecx, 0x100
fld qword [ebx + 0x90]
add eax, 8
dec ecx
fmul qword [0x470a88]
fstp qword [eax - 8]
jne 0x416ee0
mov esi, dword [esp + 0x28c]
lea edx, [esp + 0x2c]
push edx
push 0x47201c
mov ecx, esi
call fcn.00409ec0
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x34]
xor eax, eax
cmp edx, 1
setne al
lea ecx, [esp + 0x2c]
dec eax
and edi, eax
call fcn.00423a50
lea ecx, [esp + 0x2c]
push ecx
push 0x472010
mov ecx, esi
call fcn.00409ec0
cmp dword [esp + 0x2c], 1
mov esi, dword [esp + 0x34]
je 0x416f4a
mov esi, 0xff
lea ecx, [esp + 0x2c]
call fcn.00423a50
cmp dword [ebx + 0x24], 3
jne 0x416f5e
fld qword [ebx + 0x40]
jmp 0x416f64
fld qword [0x470a88]
mov ecx, dword [esp + 0x28c]
fstp qword [esp + 0x10]
lea edx, [esp + 0x2c]
push edx
push 0x472008
call fcn.00409ec0
cmp dword [esp + 0x2c], 6
jne 0x416fee
cmp edi, esi
jg 0x417126
mov eax, dword [esp + 0x28]
sub esi, edi
xor ebx, ebx
lea ebp, [eax + edi*8 + 0x5b8]
inc esi
lea ecx, [ecx]
cmp dword [esp + 0x2c], 6
jne 0x416fb6
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x38]
push ebx
call fcn.004011a0
mov eax, dword [esp + 0x44]
cmp eax, 1
je 0x416fe8
cmp eax, 2
jne 0x416fd3
fld qword [esp + 0x4c]
fld qword [esp + 0x10]
fmul st(1)
fstp qword [ebp]
fstp st(0)
lea ecx, [esp + 0x44]
call fcn.00423a50
add ebp, 8
inc ebx
dec esi
jne 0x416fa0
jmp 0x417126
fild dword [esp + 0x4c]
jmp 0x416fc8
mov eax, dword [esp + 0x24]
test eax, eax
je 0x417071
mov ecx, dword [eax + 0x14]
lea edx, [esp + 0x18]
push edx
push 0x46fb1c
call fcn.00405e40
test eax, eax
je 0x417025
movzx eax, word [esp + 0x18]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x470a88]
fstp qword [ebx + 0x6b8]
mov edi, ebp
lea esi, [ebx + 0xb0]
mov ebp, 0x100
mov eax, dword [esi]
test eax, eax
je 0x417063
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [edx + 0x14]
push eax
call fcn.00405e40
test eax, eax
je 0x417063
movzx eax, word [esp + 0x18]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x470a88]
fstp qword [edi]
add esi, 4
add edi, 8
dec ebp
jne 0x417032
jmp 0x417126
mov ecx, dword [ebx + 0x28]
test cl, 1
je 0x41707d
xor eax, eax
jmp 0x41708e
mov dl, cl
and dl, 2
neg dl
sbb edx, edx
and edx, 4
add edx, 4
mov eax, edx
test ecx, 0x40000
je 0x417099
add eax, 2
test cl, 0x40
je 0x41709f
inc eax
mov ebx, dword [eax*4 + 0x48fb10]
mov ecx, dword [ebx + 0x14]
lea eax, [esp + 0x18]
push eax
push 0x46fb1c
call fcn.00405e40
test eax, eax
je 0x4170d9
movzx ecx, word [esp + 0x18]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x470a88]
fstp qword [edx + 0x6b8]
mov esi, dword [esp + 0x28]
mov edi, ebp
add esi, 0xb0
mov ebp, 0x100
lea ebx, [ebx]
mov eax, dword [esi]
test eax, eax
je 0x41711d
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [ebx + 0x14]
push eax
call fcn.00405e40
test eax, eax
je 0x41711d
movzx edx, word [esp + 0x18]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x470a88]
fstp qword [edi]
add esi, 4
add edi, 8
dec ebp
jne 0x4170f0
lea ecx, [esp + 0x2c]
call fcn.00423a50
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x264]
pop edi
pop esi
pop ebp
mov dword [eax + 0xa8], 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x260
ret 0x1c