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

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
sub esp, 0xcc
and esp, 0xfffffff8
xor eax, eax
lea edi, [esp + 0x44]
mov dword [esp + 0x28], 0
mov dword [esp + 0x74], 0
mov dword [esp], 0
mov ecx, 9
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 8], 0
push 1
mov esi, 1
call fcn.004fa390
mov eax, dword [eax + 0x17c]
pop ecx
mov edx, dword [eax]
movzx eax, byte [edx]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x30], 0
mov eax, dword [ebp + 0x18]
mov dword [eax], 0
jmp 0x4f7880
mov ecx, esi
sub ecx, 1
je 0x4f6e10
sub ecx, 1
je 0x4f71a0
sub ecx, 2
je 0x4f7260
sub ecx, 4
je 0x4f7273
sub ecx, 8
je 0x4f72f0
sub ecx, 0x10
je 0x4f7330
sub ecx, 0x20
je 0x4f7397
sub ecx, 0x40
je 0x4f73d1
sub ecx, 0x80
je 0x4f7420
sub ecx, 0x100
je 0x4f7470
sub ecx, 0x200
je 0x4f7483
sub ecx, 0x1c00
je 0x4f6fd0
sub ecx, 0x2000
je 0x4f6f10
sub ecx, 0x4000
je 0x4f74f0
jmp 0x4f7894
cmp ebx, 0x100
mov dword [esp + 0x18], ebx
jb 0x4f6e20
xor edi, edi
jmp 0x4f6e3b
push 1
call fcn.004fa390
mov eax, dword [eax + 0x1bc]
mov edi, dword [eax + 8]
movzx edi, word [edi + ebx*2]
pop ecx
and edi, 0x100
test edi, edi
je 0x4f6e57
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
add dword [esp], 1
mov ebx, eax
jmp 0x4f7894
cmp dword [esp + 0x18], 0x100
jb 0x4f6e65
mov edx, ebx
jmp 0x4f6e7a
push 1
call fcn.004fa390
mov edx, dword [eax + 0x1bc]
pop ecx
mov ecx, dword [edx + 0xc]
movzx edx, byte [ecx + ebx]
mov eax, edx
sub eax, 0x2b
je 0x4f6e9a
sub eax, 2
je 0x4f6e92
sub eax, 0x1c
je 0x4f6ec0
sub eax, 5
je 0x4f6ee0
jmp 0x4f6f00
mov dword [esp + 0x7c], 1
add dword [esp + 0x74], 1
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
mov ebx, eax
mov dword [esp + 8], 1
jmp 0x4f7894
add dword [esp + 0x74], 1
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
mov ebx, eax
mov esi, 0x4000
jmp 0x4f7894
add dword [esp + 0x74], 1
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
mov ebx, eax
mov esi, 0x2000
jmp 0x4f7894
mov esi, 2
jmp 0x4f7894
mov edx, dword [str.INFINITY]
mov dword [esp + 0xa4], edx
mov edx, dword [0x53fee4]
mov dword [esp + 0xa8], edx
mov dl, byte [0x53fee8]
mov edi, 1
mov byte [esp + 0xac], dl
jmp 0x4f6f57
add dword [esp + 0x74], 1
add edi, 1
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
mov ebx, eax
cmp edi, 8
jge 0x4f6f89
cmp ebx, 0x100
jb 0x4f6f68
mov eax, ebx
jmp 0x4f6f7d
push 1
call fcn.004fa390
pop ecx
mov ecx, dword [eax + 0x1bc]
mov eax, dword [ecx + 0xc]
movzx eax, byte [eax + ebx]
movsx edx, byte [esp + edi + 0xa4]
cmp edx, eax
je 0x4f6f40
cmp edi, 3
fldz
je 0x4f6f95
cmp edi, 8
jne 0x4f6fc4
cmp dword [esp + 0x7c], 0
je 0x4f6fa6
fld dword [0x53fb04]
fchs
jmp 0x4f6fac
fld dword [0x53fb04]
mov ebx, dword [esp]
add ebx, edi
add ebx, dword [esp + 8]
mov eax, dword [ebp + 0x14]
mov dword [eax], ebx
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
fstp st(1)
ret
mov esi, 0x1000
fstp st(0)
jmp 0x4f7894
mov ecx, dword [str.NAN_]
mov dword [esp + 0xc0], ecx
mov cl, byte [0x53feed]
mov byte [esp + 0xc4], cl
xor eax, eax
mov dword [esp + 0x18], 0
lea edi, [esp + 0x84]
mov ecx, 8
mov esi, 1
rep stosd dword es:[edi], eax
jmp 0x4f7027
add dword [esp + 0x74], 1
add esi, 1
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
mov ebx, eax
cmp esi, 4
jge 0x4f7059
cmp ebx, 0x100
jb 0x4f7038
mov eax, ebx
jmp 0x4f704d
push 1
call fcn.004fa390
mov eax, dword [eax + 0x1bc]
mov edx, dword [eax + 0xc]
pop ecx
movzx eax, byte [edx + ebx]
movsx ecx, byte [esp + esi + 0xc0]
cmp ecx, eax
je 0x4f7010
cmp esi, 3
je 0x4f7067
cmp esi, 4
jne 0x4f7196
cmp esi, 4
jne 0x4f710c
jmp 0x4f7096
mov eax, dword [esp + 0x18]
mov byte [esp + eax + 0x84], bl
add dword [esp + 0x18], 1
add dword [esp + 0x74], 1
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
mov ebx, eax
cmp dword [esp + 0x18], 0x20
jge 0x4f70f8
mov edi, ebx
cmp edi, 0x100
jb 0x4f70b0
xor edx, edx
jmp 0x4f70c8
push 1
call fcn.004fa390
mov eax, dword [eax + 0x1bc]
mov edx, dword [eax + 8]
movzx edx, word [edx + ebx*2]
pop ecx
and edx, 8
test edx, edx
jne 0x4f7072
cmp edi, 0x100
jb 0x4f70d8
xor ecx, ecx
jmp 0x4f70f0
push 1
call fcn.004fa390
pop ecx
mov ecx, dword [eax + 0x1bc]
mov eax, dword [ecx + 8]
movzx ecx, word [eax + ebx*2]
and ecx, 1
test ecx, ecx
jne 0x4f7072
cmp ebx, 0x29
je 0x4f7107
mov esi, 0x1000
jmp 0x4f7894
add dword [esp + 0x18], 1
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x7c], 0
mov byte [esp + eax + 0x84], 0
fldz
je 0x4f7150
lea edi, [esp + 0x84]
mov ecx, edi
mov eax, dword [ecx]
test al, 0xff
jne 0x4f7132
xor eax, eax
mov dword [esp + 0xb4], 0x7ff80000
mov dword [esp + 0xb0], eax
fld qword [esp + 0xb0]
fchs
jmp 0x4f717a
lea edx, [esp + 0x84]
mov ecx, edx
mov eax, dword [ecx]
test al, 0xff
jne 0x4f7161
xor eax, eax
mov dword [esp + 0xbc], 0x7ff80000
mov dword [esp + 0xb8], eax
fld qword [esp + 0xb8]
mov ebx, dword [esp]
add ebx, esi
add ebx, dword [esp + 0x18]
add ebx, dword [esp + 8]
mov eax, dword [ebp + 0x14]
mov dword [eax], ebx
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
fstp st(1)
ret
mov esi, 0x1000
jmp 0x4f7894
cmp ebx, dword [esp + 0x6c]
jne 0x4f71b0
mov esi, 0x10
jmp 0x4f7880
cmp ebx, 0x100
jb 0x4f71c0
xor ecx, ecx
jmp 0x4f71d8
push 1
call fcn.004fa390
mov edx, dword [eax + 0x1bc]
pop ecx
mov ecx, dword [edx + 8]
movzx ecx, word [ecx + ebx*2]
and ecx, 8
test ecx, ecx
jne 0x4f71e6
mov esi, 0x1000
jmp 0x4f7894
cmp ebx, 0x30
jne 0x4f7250
add dword [esp + 0x74], 1
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
cmp eax, 0x100
mov dword [esp + 0x1c], eax
mov ebx, eax
jae 0x4f7227
push 1
call fcn.004fa390
mov eax, dword [eax + 0x1bc]
pop ecx
mov esi, dword [eax + 0xc]
mov ecx, dword [esp + 0x1c]
movzx eax, byte [esi + ecx]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], 0x58
jne 0x4f7240
mov esi, 0x8000
mov dword [esp + 0x28], 1
jmp 0x4f7894
mov esi, 4
jmp 0x4f7894
mov esi, 8
jmp 0x4f7894
cmp ebx, 0x30
je 0x4f7880
mov esi, 8
jmp 0x4f7894
cmp ebx, 0x100
jb 0x4f7280
xor edx, edx
jmp 0x4f7298
push 1
call fcn.004fa390
mov edi, dword [eax + 0x1bc]
mov edx, dword [edi + 8]
movzx edx, word [edx + ebx*2]
pop ecx
and edx, 8
test edx, edx
jne 0x4f72c0
cmp ebx, dword [esp + 0x6c]
jne 0x4f72b0
mov esi, 0x20
jmp 0x4f7880
mov esi, 0x40
jmp 0x4f7894
cmp byte [esp + 0x48], 0x14
jae 0x4f72e0
movzx ecx, byte [esp + 0x48]
add byte [esp + 0x48], 1
movzx ecx, cl
mov byte [esp + ecx + 0x49], bl
jmp 0x4f7880
add dword [esp + 0x3c], 1
jmp 0x4f7880
cmp ebx, 0x100
jb 0x4f7300
xor esi, esi
jmp 0x4f7318
push 1
call fcn.004fa390
mov eax, dword [eax + 0x1bc]
mov esi, dword [eax + 8]
movzx esi, word [esi + ebx*2]
pop ecx
and esi, 8
test esi, esi
jne 0x4f7326
mov esi, 0x1000
jmp 0x4f7894
mov esi, 0x20
jmp 0x4f7894
cmp ebx, 0x100
jb 0x4f7340
xor edi, edi
jmp 0x4f7358
push 1
call fcn.004fa390
mov edi, dword [eax + 0x1bc]
mov edx, dword [edi + 8]
movzx edi, word [edx + ebx*2]
pop ecx
and edi, 8
test edi, edi
jne 0x4f7366
mov esi, 0x40
jmp 0x4f7894
movzx eax, byte [esp + 0x48]
cmp al, 0x14
jae 0x4f7880
cmp ebx, 0x30
jne 0x4f737c
test al, al
je 0x4f738d
movzx ecx, byte [esp + 0x48]
add byte [esp + 0x48], 1
movzx ecx, cl
mov byte [esp + ecx + 0x49], bl
sub dword [esp + 0x3c], 1
jmp 0x4f7880
cmp ebx, 0x100
jb 0x4f73a3
mov edx, ebx
jmp 0x4f73b8
push 1
call fcn.004fa390
mov eax, dword [eax + 0x1bc]
mov edi, dword [eax + 0xc]
pop ecx
movzx edx, byte [edi + ebx]
cmp edx, 0x45
jne 0x4f73c7
mov esi, pe_nt_image_headers32
jmp 0x4f7880
mov esi, 0x800
jmp 0x4f7894
cmp ebx, 0x2b
jne 0x4f73f0
add dword [esp + 0x74], 1
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
mov ebx, eax
jmp 0x4f7411
cmp ebx, 0x2d
jne 0x4f7411
add dword [esp + 0x74], 1
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
mov ebx, eax
mov dword [esp + 0x78], 1
mov esi, 0x100
jmp 0x4f7894
cmp ebx, 0x100
jb 0x4f7430
xor esi, esi
jmp 0x4f7448
push 1
call fcn.004fa390
mov edx, dword [eax + 0x1bc]
mov esi, dword [edx + 8]
movzx esi, word [esi + ebx*2]
pop ecx
and esi, 8
test esi, esi
jne 0x4f7456
mov esi, 0x1000
jmp 0x4f7894
cmp ebx, 0x30
jne 0x4f7465
mov esi, 0x200
jmp 0x4f7880
mov esi, 0x400
jmp 0x4f7894
cmp ebx, 0x30
je 0x4f7880
mov esi, 0x400
jmp 0x4f7894
cmp ebx, 0x100
jb 0x4f7490
xor ecx, ecx
jmp 0x4f74a8
push 1
call fcn.004fa390
pop ecx
mov ecx, dword [eax + 0x1bc]
mov eax, dword [ecx + 8]
movzx ecx, word [eax + ebx*2]
and ecx, 8
test ecx, ecx
jne 0x4f74b6
mov esi, 0x800
jmp 0x4f7894
mov ecx, dword [esp + 0x14]
mov edx, ecx
lea eax, [ecx + edx*4]
add eax, eax
mov dword [esp + 0x14], eax
lea edi, [ebx - 0x30]
add dword [esp + 0x14], edi
mov eax, dword [esp + 0x14]
cmp eax, 0x7fff
jle 0x4f7880
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
jmp 0x4f7880
mov edx, dword [esp + 0x28]
sub edx, 1
je 0x4f7550
sub edx, 1
je 0x4f7590
sub edx, 2
je 0x4f75a6
sub edx, 4
je 0x4f7685
sub edx, 8
je 0x4f7750
sub edx, 0x10
je 0x4f7791
sub edx, 0x20
je 0x4f77c6
sub edx, 0x40
je 0x4f7814
sub edx, 0x80
je 0x4f7820
jmp 0x4f7894
lea ebx, [esp + 0x34]
mov dword [ebx], 0
mov eax, ebx
mov dword [ebx + 4], 0
mov dword [esp + 0x70], eax
mov dword [esp + 0x40], 0xe
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 2
jmp 0x4f7880
cmp ebx, 0x30
je 0x4f7880
mov dword [esp + 0x28], 4
jmp 0x4f7894
cmp ebx, 0x100
mov dword [esp + 0x18], ebx
jb 0x4f75b6
xor eax, eax
jmp 0x4f75d0
push 1
call fcn.004fa390
pop ecx
mov ecx, dword [eax + 0x1bc]
mov eax, dword [ecx + 8]
movzx eax, word [eax + ebx*2]
and eax, 0x400
test eax, eax
jne 0x4f75f4
cmp ebx, dword [esp + 0x6c]
jne 0x4f75e7
mov dword [esp + 0x28], 8
jmp 0x4f7880
mov dword [esp + 0x28], 0x10
jmp 0x4f7894
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x30], eax
jae 0x4f7880
mov edi, dword [esp + 0x2c]
add dword [esp + 0x30], 1
cmp edi, 0x80000000
sbb edi, 0xffffffff
sar edi, 1
mov ecx, dword [esp + 0x70]
movzx eax, byte [ecx + edi]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x18], 0x100
jae 0x4f7641
push 1
call fcn.004fa390
mov edx, dword [eax + 0x1bc]
pop ecx
mov ecx, dword [edx + 0xc]
movzx ebx, byte [ecx + ebx]
cmp ebx, 0x41
mov ecx, ebx
jl 0x4f7650
add ecx, 0xffffffc9
jmp 0x4f7653
sub ecx, 0x30
mov eax, dword [esp + 0x2c]
cdq
and eax, 1
xor eax, edx
sub eax, edx
je 0x4f7667
or byte [esp + 0x1c], cl
jmp 0x4f7670
mov bl, cl
shl bl, 4
or byte [esp + 0x1c], bl
mov eax, dword [esp + 0x70]
mov cl, byte [esp + 0x1c]
mov byte [eax + edi], cl
add dword [esp + 0x2c], 1
jmp 0x4f7880
cmp ebx, 0x100
mov dword [esp + 0x18], ebx
jb 0x4f7695
xor edx, edx
jmp 0x4f76b0
push 1
call fcn.004fa390
mov eax, dword [eax + 0x1bc]
mov edx, dword [eax + 8]
movzx edx, word [edx + ebx*2]
pop ecx
and edx, 0x400
test edx, edx
jne 0x4f76c1
mov dword [esp + 0x28], 0x10
jmp 0x4f7894
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x30], eax
jae 0x4f7880
mov edi, dword [esp + 0x2c]
cmp edi, 0x80000000
sbb edi, 0xffffffff
sar edi, 1
mov ecx, dword [esp + 0x70]
movzx eax, byte [ecx + edi]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x18], 0x100
jae 0x4f7709
push 1
call fcn.004fa390
pop ecx
mov ecx, dword [eax + 0x1bc]
mov eax, dword [ecx + 0xc]
movzx ebx, byte [eax + ebx]
cmp ebx, 0x41
mov ecx, ebx
jl 0x4f7715
add ecx, 0xffffffc9
jmp 0x4f7718
sub ecx, 0x30
mov eax, dword [esp + 0x2c]
cdq
and eax, 1
xor eax, edx
sub eax, edx
je 0x4f7730
or byte [esp + 0x1c], cl
jmp 0x4f7739
mov bl, cl
shl bl, 4
or byte [esp + 0x1c], bl
mov eax, dword [esp + 0x70]
mov cl, byte [esp + 0x1c]
mov byte [eax + edi], cl
add dword [esp + 0x2c], 1
jmp 0x4f7880
cmp ebx, 0x100
jb 0x4f7760
mov edx, ebx
jmp 0x4f7775
push 1
call fcn.004fa390
mov edx, dword [eax + 0x1bc]
pop ecx
mov ecx, dword [edx + 0xc]
movzx edx, byte [ecx + ebx]
cmp edx, 0x50
jne 0x4f7787
mov dword [esp + 0x28], 0x20
jmp 0x4f7880
mov esi, 0x800
jmp 0x4f7894
cmp ebx, 0x2d
jne 0x4f77a3
mov dword [esp + 0x80], 1
jmp 0x4f77b9
cmp ebx, 0x2b
je 0x4f77b9
push 1
push ebx
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
sub dword [esp + 0x74], 1
mov dword [esp + 0x28], 0x40
jmp 0x4f7880
cmp ebx, 0x100
jb 0x4f77d2
xor edi, edi
jmp 0x4f77ea
push 1
call fcn.004fa390
mov eax, dword [eax + 0x1bc]
mov edi, dword [eax + 8]
movzx edi, word [edi + ebx*2]
pop ecx
and edi, 8
test edi, edi
jne 0x4f77f8
mov esi, 0x1000
jmp 0x4f7894
cmp ebx, 0x30
jne 0x4f7807
mov dword [esp + 0x28], pe_nt_image_headers32
jmp 0x4f7880
mov dword [esp + 0x28], 0x100
jmp 0x4f7894
cmp ebx, 0x30
je 0x4f7880
mov esi, 0x100
jmp 0x4f7894
cmp ebx, 0x100
jb 0x4f7830
xor edx, edx
jmp 0x4f7848
push 1
call fcn.004fa390
mov edx, dword [eax + 0x1bc]
pop ecx
mov ecx, dword [edx + 8]
movzx edx, word [ecx + ebx*2]
and edx, 8
test edx, edx
jne 0x4f7853
mov esi, 0x800
jmp 0x4f7894
mov ecx, dword [esp + 0x20]
add ebx, 0xffffffd0
mov edx, ecx
lea eax, [ecx + edx*4]
add eax, eax
mov dword [esp + 0x20], eax
add dword [esp + 0x20], ebx
cmp dword [esp + 0x14], 0x7fff
mov eax, dword [esp + 0x20]
jle 0x4f7880
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
add dword [esp + 0x74], 1
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
mov ebx, eax
mov eax, dword [ebp + 8]
cmp dword [esp + 0x74], eax
jg 0x4f78ae
cmp ebx, 0xffffffff
je 0x4f78ae
test esi, 0x1800
je 0x4f6d72
cmp esi, 0x8000
je 0x4f78c3
xor ecx, ecx
test esi, 0xe2c
sete cl
jmp 0x4f78df
xor ecx, ecx
mov edi, dword [esp + 0x74]
add edi, 0xffffffff
cmp edi, 2
setle cl
jle 0x4f78df
test dword [esp + 0x28], 0x18e
sete cl
test ecx, ecx
je 0x4f78f0
mov eax, dword [ebp + 0x14]
mov dword [eax], 0
jmp 0x4f78ff
mov edx, dword [esp + 0x74]
add edx, 0xffffffff
add edx, dword [esp]
mov eax, dword [ebp + 0x14]
mov dword [eax], edx
push 1
push ebx
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
cmp dword [esp + 0x28], 0
fldz
jne 0x4f7a74
cmp dword [esp + 0x78], 0
je 0x4f7929
mov eax, dword [esp + 0x14]
neg eax
mov dword [esp + 0x14], eax
movzx ebx, byte [esp + 0x48]
movzx edx, bl
mov ecx, edx
lea eax, [esp + edx + 0x49]
jmp 0x4f7945
add dword [esp + 0x3c], 1
mov edi, ecx
sub ecx, 1
test edi, edi
je 0x4f7956
sub eax, 1
cmp byte [eax], 0x30
je 0x4f7940
mov dl, cl
add dl, 1
mov byte [esp + 0x48], dl
cmp byte [esp + 0x48], 0
jne 0x4f7978
movzx eax, byte [esp + 0x48]
add byte [esp + 0x48], 1
movzx eax, al
mov byte [esp + eax + 0x49], 0x30
mov eax, dword [esp + 0x3c]
add dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0xffff8000
jl 0x4f7994
cmp dword [esp + 0x14], 0x7fff
jle 0x4f799d
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
mov eax, dword [ebp + 0x18]
cmp dword [eax], 0
je 0x4f79e0
cmp dword [esp + 0x78], 0
je 0x4f79b8
lea esp, [ebp - 0xc]
pop edi
pop esi
fstp st(0)
pop ebx
pop ebp
fldz
ret
cmp dword [esp + 0x7c], 0
je 0x4f79d0
fld qword [0x53fb18]
fchs
jmp 0x4f79d6
fld qword [0x53fb18]
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
fstp st(1)
ret
mov ax, word [esp + 0x14]
lea edx, [esp + 0x44]
mov word [esp + 0x46], ax
push edx
fstp st(0)
call fcn.004fa5d0
pop ecx
fstp qword [esp]
fldz
fcomp qword [esp]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x4f7a27
fld qword [esp]
fcomp qword [0x53fb20]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4f7a27
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
jmp 0x4f7a52
fld qword [esp]
fcomp qword [0x53fb28]
fnstsw ax
test ah, 0x45
jne 0x4f7a52
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
mov edi, dword [0x53fb18]
mov eax, dword [0x53fb1c]
mov dword [esp], edi
mov dword [esp + 4], eax
cmp dword [esp + 0x7c], 0
je 0x4f7a69
test esi, 0xe2c
je 0x4f7a69
xor dword [esp + 4], 0x80000000
fld qword [esp]
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret
cmp dword [esp + 0x80], 0
je 0x4f7a88
mov ecx, dword [esp + 0x20]
neg ecx
mov dword [esp + 0x20], ecx
mov ebx, dword [esp + 0x30]
lea ebx, [ebx*4]
add dword [esp + 0x20], ebx
mov dword [esp + 8], 0
movzx eax, byte [esp + 0x34]
jmp 0x4f7ab0
add dword [esp + 8], 1
sub dword [esp + 0x20], 1
cmp dword [esp + 8], 4
jae 0x4f7ac6
mov edx, pe_nt_image_headers32
mov ecx, dword [esp + 8]
sar edx, cl
test edx, eax
je 0x4f7aa6
mov esi, dword [esp + 8]
add esi, 1
je 0x4f7cb3
lea ebx, [esp + 0x3b]
lea eax, [esp + 0x34]
cmp ebx, eax
mov byte [esp + 0x24], 0
mov dword [esp + 0x70], ebx
jb 0x4f7cb3
add eax, 8
lea edi, [esp + 0x34]
sub edi, ebx
add edi, 0xffffffff
neg edi
cmp edi, 8
mov dword [esp + 0x78], eax
jle 0x4f7c61
mov ecx, dword [esp + 8]
add ecx, 1
mov esi, 8
sub esi, ecx
mov cl, byte [esp + 8]
add cl, 1
mov eax, dword [esp + 0x70]
movzx eax, byte [eax]
movzx ebx, al
mov eax, dword [esp + 0x70]
mov dl, bl
shl dl, cl
or dl, byte [esp + 0x24]
mov byte [eax], dl
mov eax, dword [esp + 0x70]
mov ecx, esi
sar ebx, cl
movzx ecx, byte [eax - 1]
movzx eax, cl
mov dword [esp + 0x2c], eax
mov cl, byte [esp + 8]
add cl, 1
mov dl, byte [esp + 0x2c]
shl dl, cl
or dl, bl
mov eax, dword [esp + 0x70]
mov byte [eax - 1], dl
mov ecx, esi
sar dword [esp + 0x2c], cl
mov eax, dword [esp + 0x70]
movzx eax, byte [eax - 2]
movzx edx, al
mov cl, byte [esp + 8]
add cl, 1
mov eax, dword [esp + 0x70]
mov bl, dl
shl bl, cl
or bl, byte [esp + 0x2c]
mov byte [eax - 2], bl
mov eax, dword [esp + 0x70]
mov ecx, esi
sar edx, cl
movzx ecx, byte [eax - 3]
movzx eax, cl
mov dword [esp + 0x30], eax
mov cl, byte [esp + 8]
add cl, 1
mov bl, byte [esp + 0x30]
shl bl, cl
or bl, dl
mov eax, dword [esp + 0x70]
mov byte [eax - 3], bl
mov ecx, esi
sar dword [esp + 0x30], cl
mov eax, dword [esp + 0x70]
movzx eax, byte [eax - 4]
movzx ebx, al
mov cl, byte [esp + 8]
add cl, 1
mov eax, dword [esp + 0x70]
mov dl, bl
shl dl, cl
or dl, byte [esp + 0x30]
mov byte [eax - 4], dl
mov eax, dword [esp + 0x70]
mov ecx, esi
sar ebx, cl
movzx ecx, byte [eax - 5]
movzx eax, cl
mov dword [esp + 0x3c], eax
mov cl, byte [esp + 8]
add cl, 1
mov dl, byte [esp + 0x3c]
shl dl, cl
or dl, bl
mov eax, dword [esp + 0x70]
mov byte [eax - 5], dl
mov ecx, esi
sar dword [esp + 0x3c], cl
mov eax, dword [esp + 0x70]
movzx eax, byte [eax - 6]
movzx edx, al
mov cl, byte [esp + 8]
add cl, 1
mov eax, dword [esp + 0x70]
mov bl, dl
shl bl, cl
or bl, byte [esp + 0x3c]
mov byte [eax - 6], bl
mov ecx, dword [esp + 0x70]
movzx eax, byte [ecx - 7]
mov dword [esp + 0x24], eax
mov cl, byte [esp + 8]
add cl, 1
mov bl, byte [esp + 0x24]
shl bl, cl
mov eax, dword [esp + 0x70]
mov ecx, esi
sar edx, cl
or bl, dl
mov byte [eax - 7], bl
sar dword [esp + 0x24], cl
sub dword [esp + 0x70], 8
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x70], eax
jae 0x4f7b15
lea ecx, [esp + 0x34]
cmp dword [esp + 0x70], ecx
jb 0x4f7cb3
mov esi, dword [esp + 8]
add esi, 1
mov edi, 8
sub edi, esi
lea eax, [eax]
mov eax, dword [esp + 0x70]
movzx ebx, byte [eax]
mov cl, byte [esp + 8]
add cl, 1
mov eax, dword [esp + 0x70]
mov dl, bl
shl dl, cl
or dl, byte [esp + 0x24]
mov byte [eax], dl
mov ecx, edi
sar ebx, cl
lea eax, [esp + 0x34]
mov byte [esp + 0x24], bl
sub dword [esp + 0x70], 1
cmp dword [esp + 0x70], eax
jae 0x4f7c80
lea ecx, [esp + 0xc]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [esp + 0x6c], 0xb
mov dword [esp + 0x40], 0
mov dword [esp + 0x80], 0
mov esi, 1
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x80]
add edi, 8
cmp edi, 0x35
movzx ebx, byte [esp + eax + 0x34]
jbe 0x4f7d08
mov cl, 0x35
sub cl, byte [esp + 0x40]
mov al, 0xff
shl al, cl
and bl, al
movzx eax, bl
mov ebx, eax
mov ecx, 7
and ecx, dword [esp + 0x6c]
mov edx, 7
sub edx, ecx
mov ecx, edx
sar ebx, cl
or byte [esp + esi + 0xc], bl
add esi, 1
mov cl, 8
sub cl, dl
shl al, cl
add dword [esp + 0x6c], 8
or byte [esp + esi + 0xc], al
add dword [esp + 0x80], 1
add dword [esp + 0x40], 8
cmp dword [esp + 0x40], 0x35
jb 0x4f7ce4
movzx ebx, word [esp + 0x20]
add ebx, 0x3fe
movzx edi, bx
test edi, 0xfffff800
je 0x4f7d76
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
lea esp, [ebp - 0xc]
pop edi
pop esi
fstp st(0)
pop ebx
pop ebp
fldz
ret
fldz
fcomp qword [0x53fb28]
fnstsw ax
movzx edx, bx
shl edx, 5
movzx edx, dx
mov ecx, edx
sar ecx, 9
sar edx, 1
or byte [esp + 0xc], cl
or byte [esp + 0xd], dl
test ah, 0x45
jne 0x4f7da6
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
cmp dword [esp + 0x7c], 0
je 0x4f7db2
or byte [esp + 0xc], 0x80
lea esi, [esp + 0xc]
xor edi, edi
movzx ecx, byte [esi + edi]
mov eax, 7
sub eax, edi
movzx ebx, byte [esi + eax]
mov byte [esi + edi], bl
add edi, 1
cmp edi, 4
mov byte [esi + eax], cl
jb 0x4f7db8
fstp st(0)
fld qword [esp + 0xc]
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret