Function at 0x58d9d0
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.00591bf0
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 0x58e580
mov ecx, esi
sub ecx, 1
je 0x58db10
sub ecx, 1
je 0x58dea0
sub ecx, 2
je 0x58df60
sub ecx, 4
je 0x58df73
sub ecx, 8
je 0x58dff0
sub ecx, 0x10
je 0x58e030
sub ecx, 0x20
je 0x58e097
sub ecx, 0x40
je 0x58e0d1
sub ecx, 0x80
je 0x58e120
sub ecx, 0x100
je 0x58e170
sub ecx, 0x200
je 0x58e183
sub ecx, 0x1c00
je 0x58dcd0
sub ecx, 0x2000
je 0x58dc10
sub ecx, 0x4000
je 0x58e1f0
jmp 0x58e594
cmp ebx, 0x100
mov dword [esp + 0x18], ebx
jb 0x58db20
xor edi, edi
jmp 0x58db3b
push 1
call fcn.00591bf0
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 0x58db57
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
add dword [esp], 1
mov ebx, eax
jmp 0x58e594
cmp dword [esp + 0x18], 0x100
jb 0x58db65
mov edx, ebx
jmp 0x58db7a
push 1
call fcn.00591bf0
mov edx, dword [eax + 0x1bc]
pop ecx
mov ecx, dword [edx + 0xc]
movzx edx, byte [ecx + ebx]
mov eax, edx
sub eax, 0x2b
je 0x58db9a
sub eax, 2
je 0x58db92
sub eax, 0x1c
je 0x58dbc0
sub eax, 5
je 0x58dbe0
jmp 0x58dc00
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 0x58e594
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 0x58e594
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 0x58e594
mov esi, 2
jmp 0x58e594
mov edx, dword [str.INFINITY]
mov dword [esp + 0xa4], edx
mov edx, dword [0x63e4b4]
mov dword [esp + 0xa8], edx
mov dl, byte [0x63e4b8]
mov edi, 1
mov byte [esp + 0xac], dl
jmp 0x58dc57
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 0x58dc89
cmp ebx, 0x100
jb 0x58dc68
mov eax, ebx
jmp 0x58dc7d
push 1
call fcn.00591bf0
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 0x58dc40
cmp edi, 3
fldz
je 0x58dc95
cmp edi, 8
jne 0x58dcc4
cmp dword [esp + 0x7c], 0
je 0x58dca6
fld dword [0x63eadc]
fchs
jmp 0x58dcac
fld dword [0x63eadc]
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 0x58e594
mov ecx, dword [str.NAN_]
mov dword [esp + 0xc0], ecx
mov cl, byte [0x63e4bd]
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 0x58dd27
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 0x58dd59
cmp ebx, 0x100
jb 0x58dd38
mov eax, ebx
jmp 0x58dd4d
push 1
call fcn.00591bf0
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 0x58dd10
cmp esi, 3
je 0x58dd67
cmp esi, 4
jne 0x58de96
cmp esi, 4
jne 0x58de0c
jmp 0x58dd96
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 0x58ddf8
mov edi, ebx
cmp edi, 0x100
jb 0x58ddb0
xor edx, edx
jmp 0x58ddc8
push 1
call fcn.00591bf0
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 0x58dd72
cmp edi, 0x100
jb 0x58ddd8
xor ecx, ecx
jmp 0x58ddf0
push 1
call fcn.00591bf0
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 0x58dd72
cmp ebx, 0x29
je 0x58de07
mov esi, 0x1000
jmp 0x58e594
add dword [esp + 0x18], 1
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x7c], 0
mov byte [esp + eax + 0x84], 0
fldz
je 0x58de50
lea edi, [esp + 0x84]
mov ecx, edi
mov eax, dword [ecx]
test al, 0xff
jne 0x58de32
xor eax, eax
mov dword [esp + 0xb4], 0x7ff80000
mov dword [esp + 0xb0], eax
fld qword [esp + 0xb0]
fchs
jmp 0x58de7a
lea edx, [esp + 0x84]
mov ecx, edx
mov eax, dword [ecx]
test al, 0xff
jne 0x58de61
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 0x58e594
cmp ebx, dword [esp + 0x6c]
jne 0x58deb0
mov esi, 0x10
jmp 0x58e580
cmp ebx, 0x100
jb 0x58dec0
xor ecx, ecx
jmp 0x58ded8
push 1
call fcn.00591bf0
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 0x58dee6
mov esi, 0x1000
jmp 0x58e594
cmp ebx, 0x30
jne 0x58df50
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 0x58df27
push 1
call fcn.00591bf0
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 0x58df40
mov esi, 0x8000
mov dword [esp + 0x28], 1
jmp 0x58e594
mov esi, 4
jmp 0x58e594
mov esi, 8
jmp 0x58e594
cmp ebx, 0x30
je 0x58e580
mov esi, 8
jmp 0x58e594
cmp ebx, 0x100
jb 0x58df80
xor edx, edx
jmp 0x58df98
push 1
call fcn.00591bf0
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 0x58dfc0
cmp ebx, dword [esp + 0x6c]
jne 0x58dfb0
mov esi, 0x20
jmp 0x58e580
mov esi, 0x40
jmp 0x58e594
cmp byte [esp + 0x48], 0x14
jae 0x58dfe0
movzx ecx, byte [esp + 0x48]
add byte [esp + 0x48], 1
movzx ecx, cl
mov byte [esp + ecx + 0x49], bl
jmp 0x58e580
add dword [esp + 0x3c], 1
jmp 0x58e580
cmp ebx, 0x100
jb 0x58e000
xor esi, esi
jmp 0x58e018
push 1
call fcn.00591bf0
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 0x58e026
mov esi, 0x1000
jmp 0x58e594
mov esi, 0x20
jmp 0x58e594
cmp ebx, 0x100
jb 0x58e040
xor edi, edi
jmp 0x58e058
push 1
call fcn.00591bf0
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 0x58e066
mov esi, 0x40
jmp 0x58e594
movzx eax, byte [esp + 0x48]
cmp al, 0x14
jae 0x58e580
cmp ebx, 0x30
jne 0x58e07c
test al, al
je 0x58e08d
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 0x58e580
cmp ebx, 0x100
jb 0x58e0a3
mov edx, ebx
jmp 0x58e0b8
push 1
call fcn.00591bf0
mov eax, dword [eax + 0x1bc]
mov edi, dword [eax + 0xc]
pop ecx
movzx edx, byte [edi + ebx]
cmp edx, 0x45
jne 0x58e0c7
mov esi, pe_nt_image_headers32
jmp 0x58e580
mov esi, 0x800
jmp 0x58e594
cmp ebx, 0x2b
jne 0x58e0f0
add dword [esp + 0x74], 1
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
mov ebx, eax
jmp 0x58e111
cmp ebx, 0x2d
jne 0x58e111
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 0x58e594
cmp ebx, 0x100
jb 0x58e130
xor esi, esi
jmp 0x58e148
push 1
call fcn.00591bf0
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 0x58e156
mov esi, 0x1000
jmp 0x58e594
cmp ebx, 0x30
jne 0x58e165
mov esi, 0x200
jmp 0x58e580
mov esi, 0x400
jmp 0x58e594
cmp ebx, 0x30
je 0x58e580
mov esi, 0x400
jmp 0x58e594
cmp ebx, 0x100
jb 0x58e190
xor ecx, ecx
jmp 0x58e1a8
push 1
call fcn.00591bf0
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 0x58e1b6
mov esi, 0x800
jmp 0x58e594
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 0x58e580
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
jmp 0x58e580
mov edx, dword [esp + 0x28]
sub edx, 1
je 0x58e250
sub edx, 1
je 0x58e290
sub edx, 2
je 0x58e2a6
sub edx, 4
je 0x58e385
sub edx, 8
je 0x58e450
sub edx, 0x10
je 0x58e491
sub edx, 0x20
je 0x58e4c6
sub edx, 0x40
je 0x58e514
sub edx, 0x80
je 0x58e520
jmp 0x58e594
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 0x58e580
cmp ebx, 0x30
je 0x58e580
mov dword [esp + 0x28], 4
jmp 0x58e594
cmp ebx, 0x100
mov dword [esp + 0x18], ebx
jb 0x58e2b6
xor eax, eax
jmp 0x58e2d0
push 1
call fcn.00591bf0
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 0x58e2f4
cmp ebx, dword [esp + 0x6c]
jne 0x58e2e7
mov dword [esp + 0x28], 8
jmp 0x58e580
mov dword [esp + 0x28], 0x10
jmp 0x58e594
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x30], eax
jae 0x58e580
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 0x58e341
push 1
call fcn.00591bf0
mov edx, dword [eax + 0x1bc]
pop ecx
mov ecx, dword [edx + 0xc]
movzx ebx, byte [ecx + ebx]
cmp ebx, 0x41
mov ecx, ebx
jl 0x58e350
add ecx, 0xffffffc9
jmp 0x58e353
sub ecx, 0x30
mov eax, dword [esp + 0x2c]
cdq
and eax, 1
xor eax, edx
sub eax, edx
je 0x58e367
or byte [esp + 0x1c], cl
jmp 0x58e370
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 0x58e580
cmp ebx, 0x100
mov dword [esp + 0x18], ebx
jb 0x58e395
xor edx, edx
jmp 0x58e3b0
push 1
call fcn.00591bf0
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 0x58e3c1
mov dword [esp + 0x28], 0x10
jmp 0x58e594
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x30], eax
jae 0x58e580
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 0x58e409
push 1
call fcn.00591bf0
pop ecx
mov ecx, dword [eax + 0x1bc]
mov eax, dword [ecx + 0xc]
movzx ebx, byte [eax + ebx]
cmp ebx, 0x41
mov ecx, ebx
jl 0x58e415
add ecx, 0xffffffc9
jmp 0x58e418
sub ecx, 0x30
mov eax, dword [esp + 0x2c]
cdq
and eax, 1
xor eax, edx
sub eax, edx
je 0x58e430
or byte [esp + 0x1c], cl
jmp 0x58e439
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 0x58e580
cmp ebx, 0x100
jb 0x58e460
mov edx, ebx
jmp 0x58e475
push 1
call fcn.00591bf0
mov edx, dword [eax + 0x1bc]
pop ecx
mov ecx, dword [edx + 0xc]
movzx edx, byte [ecx + ebx]
cmp edx, 0x50
jne 0x58e487
mov dword [esp + 0x28], 0x20
jmp 0x58e580
mov esi, 0x800
jmp 0x58e594
cmp ebx, 0x2d
jne 0x58e4a3
mov dword [esp + 0x80], 1
jmp 0x58e4b9
cmp ebx, 0x2b
je 0x58e4b9
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 0x58e580
cmp ebx, 0x100
jb 0x58e4d2
xor edi, edi
jmp 0x58e4ea
push 1
call fcn.00591bf0
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 0x58e4f8
mov esi, 0x1000
jmp 0x58e594
cmp ebx, 0x30
jne 0x58e507
mov dword [esp + 0x28], pe_nt_image_headers32
jmp 0x58e580
mov dword [esp + 0x28], 0x100
jmp 0x58e594
cmp ebx, 0x30
je 0x58e580
mov esi, 0x100
jmp 0x58e594
cmp ebx, 0x100
jb 0x58e530
xor edx, edx
jmp 0x58e548
push 1
call fcn.00591bf0
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 0x58e553
mov esi, 0x800
jmp 0x58e594
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 0x58e580
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 0x58e5ae
cmp ebx, 0xffffffff
je 0x58e5ae
test esi, 0x1800
je 0x58da72
cmp esi, 0x8000
je 0x58e5c3
xor ecx, ecx
test esi, 0xe2c
sete cl
jmp 0x58e5df
xor ecx, ecx
mov edi, dword [esp + 0x74]
add edi, 0xffffffff
cmp edi, 2
setle cl
jle 0x58e5df
test dword [esp + 0x28], 0x18e
sete cl
test ecx, ecx
je 0x58e5f0
mov eax, dword [ebp + 0x14]
mov dword [eax], 0
jmp 0x58e5ff
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 0x58e774
cmp dword [esp + 0x78], 0
je 0x58e629
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 0x58e645
add dword [esp + 0x3c], 1
mov edi, ecx
sub ecx, 1
test edi, edi
je 0x58e656
sub eax, 1
cmp byte [eax], 0x30
je 0x58e640
mov dl, cl
add dl, 1
mov byte [esp + 0x48], dl
cmp byte [esp + 0x48], 0
jne 0x58e678
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 0x58e694
cmp dword [esp + 0x14], 0x7fff
jle 0x58e69d
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
mov eax, dword [ebp + 0x18]
cmp dword [eax], 0
je 0x58e6e0
cmp dword [esp + 0x78], 0
je 0x58e6b8
lea esp, [ebp - 0xc]
pop edi
pop esi
fstp st(0)
pop ebx
pop ebp
fldz
ret
cmp dword [esp + 0x7c], 0
je 0x58e6d0
fld qword [0x63eaf0]
fchs
jmp 0x58e6d6
fld qword [0x63eaf0]
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.00591ef0
pop ecx
fstp qword [esp]
fldz
fcomp qword [esp]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x58e727
fld qword [esp]
fcomp qword [0x63eaf8]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x58e727
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
jmp 0x58e752
fld qword [esp]
fcomp qword [0x63eb00]
fnstsw ax
test ah, 0x45
jne 0x58e752
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
mov edi, dword [0x63eaf0]
mov eax, dword [0x63eaf4]
mov dword [esp], edi
mov dword [esp + 4], eax
cmp dword [esp + 0x7c], 0
je 0x58e769
test esi, 0xe2c
je 0x58e769
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 0x58e788
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 0x58e7b0
add dword [esp + 8], 1
sub dword [esp + 0x20], 1
cmp dword [esp + 8], 4
jae 0x58e7c6
mov edx, pe_nt_image_headers32
mov ecx, dword [esp + 8]
sar edx, cl
test edx, eax
je 0x58e7a6
mov esi, dword [esp + 8]
add esi, 1
je 0x58e9b3
lea ebx, [esp + 0x3b]
lea eax, [esp + 0x34]
cmp ebx, eax
mov byte [esp + 0x24], 0
mov dword [esp + 0x70], ebx
jb 0x58e9b3
add eax, 8
lea edi, [esp + 0x34]
sub edi, ebx
add edi, 0xffffffff
neg edi
cmp edi, 8
mov dword [esp + 0x78], eax
jle 0x58e961
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 0x58e815
lea ecx, [esp + 0x34]
cmp dword [esp + 0x70], ecx
jb 0x58e9b3
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 0x58e980
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 0x58ea08
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 0x58e9e4
movzx ebx, word [esp + 0x20]
add ebx, 0x3fe
movzx edi, bx
test edi, 0xfffff800
je 0x58ea76
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 [0x63eb00]
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 0x58eaa6
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
cmp dword [esp + 0x7c], 0
je 0x58eab2
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 0x58eab8
fstp st(0)
fld qword [esp + 0xc]
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret