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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xd4
mov eax, dword [0x62f570]
xor eax, esp
mov dword [esp + 0xd0], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
push ebx
push esi
xor esi, esi
test byte [ecx + 0x15], 2
push edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x44], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x14], esi
je 0x4abe6b
add eax, 4
mov dword [esp + 0x28], eax
mov eax, dword [eax - 4]
mov dword [esp + 0x50], eax
mov byte [esp + 0x13], 1
jmp 0x4abe70
mov byte [esp + 0x13], 0
movsx eax, byte [edx]
cmp eax, esi
je case.default.0x4ac162
mov edi, dword [esp + 0x2c]
cmp eax, 0x25
je 0x4abedb
mov esi, edi
mov dword [esp + 0x14], esi
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
test al, al
je 0x4abe9c
cmp al, 0x25
jne 0x4abe90
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 0x10]
mov eax, edi
sub eax, esi
add edx, eax
cmp edx, dword [ecx + 8]
jb 0x4abeb9
push esi
call fcn.004ad390
add esp, 4
jmp 0x4abed2
test eax, eax
je 0x4abed2
mov dword [ecx + 0x10], edx
mov ecx, dword [ecx + 4]
push eax
sub ecx, eax
add ecx, edx
push esi
push ecx
call fcn.0058ff50
add esp, 0xc
cmp byte [edi], 0
je case.default.0x4ac162
movsx eax, byte [edi + 1]
mov ecx, dword [esp + 0x30]
inc edi
test eax, eax
je 0x4ad126
mov byte [esp + 0x37], 0
mov byte [esp + 0x1d], 0
mov byte [esp + 0x27], 0
mov byte [esp + 0x1f], 0
mov byte [esp + 0x12], 0
mov byte [esp + 0x1e], 0
lea ebx, [ebx]
lea ecx, [eax - 0x20]
cmp ecx, 0x10
ja case.0x4abf1f.34
movzx edx, byte [ecx + 0x4ad1c4]
jmp dword [edx*4 + 0x4ad1a4]
mov byte [esp + 0x1e], 1
jmp 0x4abf55
mov byte [esp + 0x12], 0x2b
jmp 0x4abf55
mov byte [esp + 0x12], 0x20
jmp 0x4abf55
mov byte [esp + 0x27], 1
jmp 0x4abf55
mov byte [esp + 0x1d], 1
jmp 0x4abf55
mov byte [esp + 0x37], 1
jmp 0x4abf55
mov byte [esp + 0x1f], 0x2c
movsx eax, byte [edi + 1]
inc edi
test eax, eax
jne 0x4abf10
mov dword [esp + 0x2c], edi
cmp eax, 0x2a
jne 0x4abff4
cmp byte [esp + 0x13], 0
mov ebx, dword [esp + 0x50]
je 0x4abfae
mov eax, dword [ebx + 4]
cmp dword [ebx], eax
jg 0x4abf8d
mov esi, dword [esp + 0x28]
xor eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x20], eax
jmp 0x4abfc1
mov ecx, dword [ebx + 8]
mov ecx, dword [ecx + eax*4]
inc eax
push ecx
mov dword [ebx + 4], eax
call fcn.004d1160
mov esi, dword [esp + 0x2c]
add esp, 4
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], eax
jmp 0x4abfc1
mov esi, dword [esp + 0x28]
mov edx, dword [esi]
add esi, 4
mov dword [esp + 0x28], esi
mov dword [esp + 0x20], edx
mov eax, edx
test eax, eax
jge 0x4abfe9
cmp eax, reloc.Languages.dll_Ordinal_1
mov byte [esp + 0x1e], 1
jl 0x4abfe1
neg eax
inc edi
mov dword [esp + 0x20], eax
movsx eax, byte [edi]
mov dword [esp + 0x2c], edi
jmp 0x4ac02b
mov dword [esp + 0x20], 0
movsx eax, byte [edi + 1]
inc edi
mov dword [esp + 0x2c], edi
jmp 0x4ac02b
xor ecx, ecx
cmp eax, 0x30
jl 0x4ac019
jmp 0x4ac000
cmp eax, 0x39
jg 0x4ac015
lea ecx, [ecx + ecx*4]
inc edi
lea ecx, [eax + ecx*2 - 0x30]
movsx eax, byte [edi]
cmp eax, 0x30
jge 0x4ac000
mov dword [esp + 0x2c], edi
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x28]
and ecx, 0x7fffffff
mov dword [esp + 0x20], ecx
cmp eax, 0x2e
jne 0x4ac0d5
movsx eax, byte [edi + 1]
inc edi
mov dword [esp + 0x2c], edi
cmp eax, 0x2a
jne 0x4ac0a2
cmp byte [esp + 0x13], 0
je 0x4ac071
mov eax, dword [ebx + 4]
cmp dword [ebx], eax
jg 0x4ac058
xor eax, eax
mov dword [esp + 0x3c], eax
jmp 0x4ac07a
mov edx, dword [ebx + 8]
mov ecx, dword [edx + eax*4]
inc eax
push ecx
mov dword [ebx + 4], eax
call fcn.004d1160
add esp, 4
mov dword [esp + 0x3c], edx
jmp 0x4ac07a
mov eax, dword [esi]
add esi, 4
mov dword [esp + 0x28], esi
mov dword [esp + 0x18], eax
movsx eax, byte [edi + 1]
inc edi
cmp dword [esp + 0x18], 0
mov dword [esp + 0x2c], edi
jge 0x4ac0dd
mov ecx, dword [esp + 0x18]
cmp ecx, reloc.Languages.dll_Ordinal_1
jl 0x4ac0d5
neg ecx
mov dword [esp + 0x18], ecx
jmp 0x4ac0dd
xor ecx, ecx
cmp eax, 0x30
jl 0x4ac0c9
lea esp, [esp]
cmp eax, 0x39
jg 0x4ac0c5
lea ecx, [ecx + ecx*4]
inc edi
lea ecx, [eax + ecx*2 - 0x30]
movsx eax, byte [edi]
cmp eax, 0x30
jge 0x4ac0b0
mov dword [esp + 0x2c], edi
and ecx, 0x7fffffff
mov dword [esp + 0x18], ecx
jmp 0x4ac0dd
mov dword [esp + 0x18], 0xffffffff
cmp eax, 0x6c
jne 0x4ac105
movsx eax, byte [edi + 1]
inc edi
mov byte [esp + 0x10], 1
mov dword [esp + 0x2c], edi
cmp eax, 0x6c
jne 0x4ac10a
movsx eax, byte [edi + 1]
inc edi
mov byte [esp + 0x10], 2
mov dword [esp + 0x2c], edi
jmp 0x4ac10a
mov byte [esp + 0x10], 0
mov ecx, 0x5e41f8
mov dword [esp + 0x54], ecx
mov byte [esp + 0x11], 0x11
xor edx, edx
lea ebx, [ebx]
movsx edi, byte [ecx]
cmp eax, edi
je 0x4ac139
add ecx, 6
inc edx
cmp ecx, 0x5e4282
jl 0x4ac120
mov ecx, dword [esp + 0x54]
jmp 0x4ac152
lea ecx, [edx + edx*2]
mov dl, byte [ecx*2 + 0x5e41fb]
lea ecx, [ecx*2 + 0x5e41f8]
mov dword [esp + 0x54], ecx
mov byte [esp + 0x11], dl
mov dl, byte [esp + 0x11]
movzx eax, dl
cmp eax, 0x10
ja case.default.0x4ac162
jmp dword [eax*4 + 0x4ad1d8]
mov al, 1
mov byte [esp + 0x1f], 0
jmp 0x4ac181
mov al, byte [esp + 0x10]
mov byte [esp + 0x1f], 0
jmp 0x4ac181
mov al, byte [esp + 0x10]
test byte [ecx + 2], 1
je 0x4ac212
cmp byte [esp + 0x13], 0
je 0x4ac1c3
mov eax, dword [ebx + 4]
cmp dword [ebx], eax
jg 0x4ac1ae
xor eax, eax
xor edx, edx
mov esi, edx
mov dl, byte [esp + 0x12]
mov edi, eax
mov byte [esp + 0x10], dl
jmp 0x4ac269
mov ecx, dword [ebx + 8]
mov ecx, dword [ecx + eax*4]
inc eax
push ecx
mov dword [ebx + 4], eax
call fcn.004d1160
add esp, 4
jmp 0x4ac1df
test al, al
je 0x4ac1d5
cmp al, 2
jne 0x4ac1d5
mov eax, dword [esi]
mov edx, dword [esi + 4]
add esi, 8
jmp 0x4ac1db
mov eax, dword [esi]
add esi, 4
cdq
mov dword [esp + 0x28], esi
test edx, edx
jg 0x4ac19d
jl 0x4ac1e9
test eax, eax
jae 0x4ac19d
test eax, eax
jne 0x4ac200
cmp edx, 0x80000000
jne 0x4ac200
xor edi, edi
mov esi, edx
mov byte [esp + 0x10], 0x2d
jmp 0x4ac269
neg eax
adc edx, 0
neg edx
mov edi, eax
mov esi, edx
mov byte [esp + 0x10], 0x2d
jmp 0x4ac269
cmp byte [esp + 0x13], 0
je 0x4ac243
mov eax, dword [ebx + 4]
cmp dword [ebx], eax
jg 0x4ac22a
xor eax, eax
xor edx, edx
mov edi, eax
mov esi, edx
jmp 0x4ac264
mov ecx, dword [ebx + 8]
mov ecx, dword [ecx + eax*4]
inc eax
push ecx
mov dword [ebx + 4], eax
call fcn.004d1160
add esp, 4
mov edi, eax
mov esi, edx
jmp 0x4ac264
test al, al
je 0x4ac259
cmp al, 2
jne 0x4ac259
mov edi, dword [esi]
add esi, 8
mov dword [esp + 0x28], esi
mov esi, dword [esi - 4]
jmp 0x4ac264
mov edi, dword [esi]
add esi, 4
mov dword [esp + 0x28], esi
xor esi, esi
mov byte [esp + 0x10], 0
mov edx, edi
or edx, esi
jne 0x4ac273
mov byte [esp + 0x27], dl
cmp byte [esp + 0x37], 0
je 0x4ac293
mov eax, dword [esp + 0x20]
xor ecx, ecx
cmp byte [esp + 0x10], cl
setne cl
sub eax, ecx
cmp dword [esp + 0x18], eax
jge 0x4ac293
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], 0x25
jge 0x4ac2ac
lea eax, [esp + 0x90]
mov ebx, 0x46
mov dword [esp + 0x58], eax
jmp 0x4ac2f4
mov eax, 0x55555556
imul dword [esp + 0x18]
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov ebx, eax
mov eax, dword [esp + 0x18]
mov ecx, edx
cdq
add ebx, eax
adc ecx, edx
add ebx, 0xa
adc ecx, 0
mov edx, ebx
or edx, ecx
je 0x4ac2e2
push ecx
push ebx
call fcn.004ab330
add esp, 8
jmp 0x4ac2e4
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x58], eax
test eax, eax
je 0x4ad17d
cmp byte [esp + 0x11], 0xf
lea eax, [eax + ebx - 1]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x14], eax
jne 0x4ac34f
push 0
push 0xa
push esi
push edi
call fcn.00598d50
mov dword [esp + 0x3c], ebx
mov ebx, ecx
cmp ebx, 4
jge 0x4ac331
push 0
push 0xa
push edx
push eax
call fcn.005b99e0
cmp eax, 1
jne 0x4ac333
test edx, edx
jne 0x4ac333
xor ebx, ebx
mov eax, dword [esp + 0x14]
mov cl, byte [ebx*2 + 0x5e4285]
dec eax
mov byte [eax], cl
mov dl, byte [ebx*2 + str.thstndrd]
dec eax
mov dword [esp + 0x14], eax
mov byte [eax], dl
mov ecx, dword [esp + 0x54]
movzx eax, byte [ecx + 4]
add eax, str.0123456789ABCDEF0123456789abcdef
mov dword [esp + 0x38], eax
movzx eax, byte [ecx + 1]
cdq
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
dec dword [esp + 0x14]
push eax
push ecx
push esi
push edi
call fcn.00598d50
mov esi, dword [esp + 0x38]
mov cl, byte [ecx + esi]
mov esi, dword [esp + 0x14]
mov byte [esi], cl
mov esi, edx
mov dword [esp + 0x8c], ebx
mov edi, eax
test esi, esi
ja 0x4ac36d
jb 0x4ac3a4
test edi, edi
ja 0x4ac36d
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x18]
sub edx, esi
lea eax, [edx + eax - 1]
cmp ecx, eax
jle 0x4ac3cf
sub ecx, eax
add eax, ecx
dec esi
sub ecx, 1
mov byte [esi], 0x30
jne 0x4ac3c2
mov dword [esp + 0x14], esi
mov bl, byte [esp + 0x1f]
test bl, bl
je 0x4ac40d
dec eax
cdq
mov ecx, 3
idiv ecx
xor ecx, ecx
sub esi, eax
lea edi, [edx + 1]
mov dword [esp + 0x14], esi
test eax, eax
jle 0x4ac40d
nop
sub edi, 1
lea edx, [eax + ecx]
mov dl, byte [edx + esi]
mov byte [ecx + esi], dl
jne 0x4ac408
inc ecx
mov byte [ecx + esi], bl
dec eax
mov edi, 3
inc ecx
test eax, eax
jg 0x4ac3f0
mov al, byte [esp + 0x10]
test al, al
je 0x4ac41c
dec esi
mov dword [esp + 0x14], esi
mov byte [esi], al
cmp byte [esp + 0x27], 0
je 0x4ac44e
mov eax, dword [esp + 0x54]
mov al, byte [eax + 5]
test al, al
je 0x4ac44e
movzx eax, al
add eax, 0x5e41f0
mov cl, byte [eax]
test cl, cl
je 0x4ac44e
lea esp, [esp]
dec esi
inc eax
mov byte [esi], cl
mov cl, byte [eax]
test cl, cl
jne 0x4ac440
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x58]
sub ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x48]
lea ebx, [ebx + ecx - 1]
jmp 0x4acefd
cmp byte [esp + 0x13], 0
je 0x4ac473
mov eax, ebx
call fcn.004abd80
jmp 0x4ac47c
fld qword [esi]
add esi, 8
mov dword [esp + 0x28], esi
mov ecx, dword [esp + 0x18]
fst qword [esp + 0x38]
test ecx, ecx
jge 0x4ac491
mov ecx, 6
mov dword [esp + 0x18], ecx
fldz
fcom st(1)
fnstsw ax
fxch st(1)
test ah, 0x41
jne 0x4ac4ab
fchs
mov byte [esp + 0x10], 0x2d
fst qword [esp + 0x38]
jmp 0x4ac4b3
mov dl, byte [esp + 0x12]
mov byte [esp + 0x10], dl
cmp byte [esp + 0x11], 3
jne 0x4ac4c3
test ecx, ecx
jle 0x4ac4c3
dec ecx
mov dword [esp + 0x18], ecx
fld qword [0x602d28]
mov eax, ecx
fld qword [0x602e28]
and eax, 0xfff
cmp eax, 8
jl 0x4ac4fe
lea ecx, [eax - 8]
shr ecx, 3
inc ecx
mov edx, ecx
neg edx
lea eax, [eax + edx*8]
sub ecx, 1
fmul st(1), st(0)
fmul st(1), st(0)
fmul st(1), st(0)
fmul st(1), st(0)
fmul st(1), st(0)
fmul st(1), st(0)
fmul st(1), st(0)
fmul st(1), st(0)
jne 0x4ac4e9
test eax, eax
jle 0x4ac509
dec eax
fmul st(1), st(0)
test eax, eax
jg 0x4ac502
cmp byte [esp + 0x11], 1
jne 0x4ac51c
fld st(1)
faddp st(3)
fxch st(2)
fst qword [esp + 0x38]
fxch st(2)
fxch st(2)
xor ebx, ebx
fst qword [esp + 0x48]
fld qword [esp + 0x48]
fstp qword [esp + 0x58]
fld qword [esp + 0x48]
fld qword [esp + 0x58]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4ac557
fstp st(3)
mov dword [esp + 0x14], 0x5fea10
fstp st(2)
mov ebx, 3
fstp st(1)
fstp st(0)
jmp 0x4acefd
fcom st(3)
fnstsw ax
fstp st(3)
test ah, 0x41
jne 0x4ac6a1
fld1
fld st(0)
fld qword [0x602e88]
fcom st(5)
fnstsw ax
test ah, 0x41
jp 0x4ac593
cmp ebx, 0x15e
jg 0x4ac593
fmul st(1), st(0)
add ebx, 0x64
fld st(1)
fmul st(1)
fcomp st(6)
fnstsw ax
test ah, 0x41
jnp 0x4ac579
fstp st(0)
fld st(0)
fld qword [0x602e48]
fmul st(1), st(0)
fxch st(6)
fcom st(1)
fnstsw ax
test ah, 1
je 0x4ac5b4
fstp st(1)
fstp st(5)
jmp 0x4ac5d4
fxch st(1)
fxch st(2)
cmp ebx, 0x15e
jg 0x4ac5aa
fstp st(2)
add ebx, 0xa
fld st(0)
fmul st(6)
fcom st(2)
fnstsw ax
test ah, 0x41
jnp 0x4ac5b0
fstp st(0)
fstp st(5)
fxch st(4)
fld st(0)
fld qword [0x602d18]
fmul st(1), st(0)
fxch st(6)
fcom st(1)
fnstsw ax
test ah, 1
je 0x4ac5f1
fstp st(1)
jmp 0x4ac60d
fxch st(1)
fxch st(2)
cmp ebx, 0x15e
jg 0x4ac5e9
fstp st(2)
inc ebx
fld st(0)
fmul st(6)
fcom st(2)
fnstsw ax
test ah, 0x41
jnp 0x4ac5ed
fstp st(0)
fxch st(1)
fdivrp st(1)
fst qword [esp + 0x38]
fld qword [0x602e80]
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x4ac643
fstp st(0)
fcom st(1)
fnstsw ax
test ah, 5
jp 0x4ac65f
fmul st(4)
dec ebx
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x4ac62d
fstp st(1)
fst qword [esp + 0x38]
jmp 0x4ac661
fxch st(1)
fxch st(1)
sub ebx, 8
fmul qword [0x602e78]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x4ac641
fstp st(1)
fst qword [esp + 0x38]
jmp 0x4ac624
fstp st(1)
cmp ebx, 0x15e
jle 0x4ac6a9
lea eax, [esp + 0x90]
fstp st(0)
xor ebx, ebx
fstp st(0)
mov dword [esp + 0x14], eax
fstp st(1)
mov al, byte [esp + 0x10]
fstp st(0)
test al, al
setne bl
mov byte [esp + 0x90], al
mov dword [esp + ebx + 0x90], 0x666e49
add ebx, 3
jmp 0x4acefd
fld qword [0x602d18]
fxch st(3)
mov cl, byte [esp + 0x11]
lea esi, [esp + 0x90]
cmp cl, 1
je 0x4ac6d1
faddp st(1)
fst qword [esp + 0x38]
fcom st(2)
fnstsw ax
test ah, 1
jne 0x4ac6d3
fmulp st(1)
inc ebx
fst qword [esp + 0x38]
jmp 0x4ac6d5
fstp st(1)
fstp st(1)
cmp cl, 3
jne 0x4ac75b
cmp byte [esp + 0x27], 0
sete byte [esp + 0x1f]
cmp ebx, 0xfffffffc
jl 0x4ac74e
cmp ebx, dword [esp + 0x18]
jg 0x4ac74e
sub dword [esp + 0x18], ebx
mov byte [esp + 0x11], 1
mov eax, ebx
mov dword [esp + 0x14], ebx
xor ecx, ecx
test eax, eax
setle cl
dec ecx
and eax, ecx
cdq
mov ecx, eax
mov eax, dword [esp + 0x18]
mov edi, edx
cdq
add ecx, eax
mov eax, dword [esp + 0x20]
adc edi, edx
cdq
add ecx, eax
mov eax, edi
adc eax, edx
js 0x4ac788
jg 0x4ac72e
cmp ecx, 0x37
jbe 0x4ac788
add ecx, 0xf
fstp st(1)
adc eax, 0
mov edx, ecx
or edx, eax
je 0x4ac770
push eax
fstp st(0)
push ecx
call fcn.004ab330
fld qword [esp + 0x40]
add esp, 8
jmp 0x4ac772
xor eax, eax
mov byte [esp + 0x11], 2
mov dword [esp + 0x14], eax
jmp 0x4ac702
mov dl, byte [esp + 0x1d]
mov byte [esp + 0x1f], dl
cmp cl, 2
jne 0x4ac6fc
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x4ac702
xor eax, eax
mov dword [esp + 0x44], eax
mov esi, eax
test eax, eax
je 0x4ad17b
fld qword [0x602d18]
jmp 0x4ac78a
fxch st(1)
mov dl, byte [esp + 0x1d]
cmp dword [esp + 0x18], 0
movzx eax, dl
setg cl
or cl, dl
or cl, byte [esp + 0x27]
lea edi, [eax + eax*4]
mov al, byte [esp + 0x10]
lea edi, [edi + edi + 0x10]
mov dword [esp + 0x58], esi
mov dword [esp + 0x48], edi
mov byte [esp + 0x12], cl
test al, al
je 0x4ac7bd
mov byte [esi], al
inc esi
cmp dword [esp + 0x14], 0
jge 0x4ac7cc
mov byte [esi], 0x30
fstp st(0)
inc esi
jmp 0x4ac802
test edi, edi
jg 0x4ac7d4
mov al, 0x30
jmp 0x4ac7ea
fld st(1)
dec edi
call fcn.0058d980
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
add al, 0x30
fsubp st(2)
fmul st(1), st(0)
mov byte [esi], al
inc esi
sub dword [esp + 0x14], 1
jns 0x4ac7cc
mov cl, byte [esp + 0x12]
fstp st(0)
fst qword [esp + 0x38]
mov dword [esp + 0x48], edi
test cl, cl
je 0x4ac80a
mov byte [esi], 0x2e
inc esi
add dword [esp + 0x14], 1
jns 0x4ac833
mov edi, dword [esp + 0x14]
fstp st(0)
neg edi
push edi
push 0x30
push esi
call fcn.00589f50
fld qword [esp + 0x44]
add esi, edi
add esp, 0xc
sub dword [esp + 0x18], edi
mov edi, dword [esp + 0x48]
cmp dword [esp + 0x18], 0
jle 0x4ac86e
fld qword [0x602d18]
dec dword [esp + 0x18]
test edi, edi
jg 0x4ac84c
mov al, 0x30
jmp 0x4ac862
fld st(1)
dec edi
call fcn.0058d980
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
add al, 0x30
fsubp st(2)
fmul st(1), st(0)
mov byte [esi], al
inc esi
cmp dword [esp + 0x18], 0
jg 0x4ac840
fstp st(1)
cmp byte [esp + 0x1f], 0
fstp st(0)
je 0x4ac8a5
cmp byte [esp + 0x12], 0
je 0x4ac8a5
cmp byte [esi - 1], 0x30
jne 0x4ac88e
dec esi
mov byte [esi], 0
cmp byte [esi - 1], 0x30
je 0x4ac884
cmp byte [esi - 1], 0x2e
jne 0x4ac8a5
cmp byte [esp + 0x1d], 0
je 0x4ac8a1
mov byte [esi], 0x30
inc esi
jmp 0x4ac8a5
dec esi
mov byte [esi], 0
cmp byte [esp + 0x11], 2
jne 0x4ac915
mov eax, dword [esp + 0x54]
movzx ecx, byte [eax + 4]
mov dl, byte [ecx + str.0123456789ABCDEF0123456789abcdef]
mov byte [esi], dl
inc esi
test ebx, ebx
jge 0x4ac8c9
mov byte [esi], 0x2d
inc esi
neg ebx
jmp 0x4ac8cd
mov byte [esi], 0x2b
inc esi
cmp ebx, 0x64
jl 0x4ac8f0
mov eax, 0x51eb851f
imul ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov cl, al
imul eax, eax, 0xffffff9c
add cl, 0x30
mov byte [esi], cl
inc esi
add ebx, eax
mov eax, 0x66666667
imul ebx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, al
mov cl, 0xa
imul cl
add dl, 0x30
mov byte [esi], dl
sub bl, al
inc esi
add bl, 0x30
mov byte [esi], bl
inc esi
mov eax, dword [esp + 0x58]
mov byte [esi], 0
sub esi, eax
cmp byte [esp + 0x37], 0
mov ebx, esi
mov dword [esp + 0x14], eax
je 0x4acefd
cmp byte [esp + 0x1e], 0
jne 0x4acefd
mov edx, dword [esp + 0x20]
cmp ebx, edx
jge 0x4acefd
mov edi, dword [esp + 0x58]
mov ecx, edx
sub ecx, ebx
cmp edx, ecx
mov eax, edx
jl 0x4ac963
mov esi, edi
sub esi, ecx
mov bl, byte [esi + eax]
mov byte [eax + edi], bl
dec eax
cmp eax, ecx
jge 0x4ac958
xor eax, eax
cmp byte [esp + 0x10], al
setne al
test ecx, ecx
je 0x4ac982
push ecx
add edi, eax
push 0x30
push edi
call fcn.00589f50
mov edx, dword [esp + 0x2c]
add esp, 0xc
mov ebx, edx
jmp 0x4acefd
cmp byte [esp + 0x13], 0
jne 0x4acef7
mov eax, dword [esp + 0x30]
mov edx, dword [esi]
mov ecx, dword [eax + 0x10]
add esi, 4
mov dword [esp + 0x28], esi
mov dword [edx], ecx
jmp 0x4acef7
lea edx, [esp + 0x90]
mov byte [esp + 0x90], 0x25
mov dword [esp + 0x14], edx
mov ebx, 1
jmp 0x4acefd
cmp byte [esp + 0x13], 0
je 0x4aca30
mov ecx, dword [esp + 0x50]
call fcn.004abdc0
mov ebx, 1
test eax, eax
je 0x4aca23
movsx ecx, byte [eax]
mov byte [esp + 0x90], cl
and ecx, 0xc0
inc eax
cmp cl, 0xc0
jne 0x4acaf2
jmp 0x4aca00
mov cl, byte [eax]
mov dl, cl
and dl, 0xc0
cmp dl, 0x80
jne 0x4acaf2
mov byte [esp + ebx + 0x90], cl
inc ebx
inc eax
cmp ebx, 4
jl 0x4aca00
jmp 0x4acaf2
mov byte [esp + 0x90], 0
jmp 0x4acaf2
mov eax, dword [esi]
add esi, 4
mov dword [esp + 0x28], esi
cmp eax, 0x80
jae 0x4aca51
mov byte [esp + 0x90], al
mov ebx, 1
jmp 0x4acaf2
mov ecx, eax
cmp eax, 0x800
jae 0x4aca7c
shr ecx, 6
and cl, 0x1f
sub cl, 0x40
and al, 0x3f
add al, 0x80
mov byte [esp + 0x90], cl
mov byte [esp + 0x91], al
mov ebx, 2
jmp 0x4acaf2
mov edx, eax
cmp eax, 0x10000
jae 0x4acab0
shr edx, 0xc
shr ecx, 6
and dl, 0xf
and cl, 0x3f
sub dl, 0x20
and al, 0x3f
add cl, 0x80
add al, 0x80
mov byte [esp + 0x90], dl
mov byte [esp + 0x92], al
mov ebx, 3
jmp 0x4acaeb
shr edx, 0x12
and dl, 7
sub dl, 0x10
mov byte [esp + 0x90], dl
mov edx, eax
shr ecx, 0xc
shr edx, 6
and cl, 0x3f
and dl, 0x3f
add dl, 0x80
and al, 0x3f
add cl, 0x80
add al, 0x80
mov byte [esp + 0x92], dl
mov byte [esp + 0x93], al
mov ebx, 4
mov byte [esp + 0x91], cl
mov edi, dword [esp + 0x18]
cmp edi, 1
jle 0x4acb86
mov eax, dword [esp + 0x20]
mov ecx, 1
sub ecx, edi
add eax, ecx
cmp eax, 1
mov dword [esp + 0x20], eax
jle 0x4acb37
cmp byte [esp + 0x1e], 0
jne 0x4acb37
mov esi, dword [esp + 0x30]
push 0x20
dec eax
push eax
push esi
call fcn.004ad330
add esp, 0xc
mov dword [esp + 0x20], 0
jmp 0x4acb3b
mov esi, dword [esp + 0x30]
dec edi
lea esp, [esp]
mov edx, dword [esi + 0x10]
lea eax, [edx + ebx]
cmp eax, dword [esi + 8]
jb 0x4acb61
lea eax, [esp + 0x90]
push eax
mov eax, ebx
mov ecx, esi
call fcn.004ad390
add esp, 4
jmp 0x4acb81
test ebx, ebx
je 0x4acb81
mov edx, dword [esi + 4]
push ebx
lea ecx, [esp + 0x94]
sub edx, ebx
push ecx
add edx, eax
push edx
mov dword [esi + 0x10], eax
call fcn.0058ff50
add esp, 0xc
sub edi, 1
jne 0x4acb40
lea eax, [esp + 0x90]
mov dword [esp + 0x14], eax
jmp 0x4ace0c
cmp byte [esp + 0x13], 0
je 0x4acbb1
mov ecx, ebx
call fcn.004abdc0
mov esi, eax
mov dword [esp + 0x14], eax
mov byte [esp + 0x11], 5
jmp 0x4acbbf
add esi, 4
mov dword [esp + 0x28], esi
mov esi, dword [esi - 4]
mov dword [esp + 0x14], esi
test esi, esi
jne 0x4acbce
mov esi, 0x5e1790
mov dword [esp + 0x14], esi
jmp 0x4acc32
cmp byte [esp + 0x11], 6
jne 0x4acc32
mov edi, dword [esp + 0x30]
cmp dword [edi + 0x10], 0
jne 0x4acc2e
cmp dword [edi + 0xc], 0
je 0x4acc2e
cmp dword [esp + 0x20], 0
jne 0x4acc2e
cmp dword [esp + 0x18], 0
jge 0x4acc2e
cmp byte [edi + 0x14], 0
jne 0x4acc2e
mov eax, dword [edi]
mov ecx, esi
mov dword [edi + 4], esi
call fcn.004ab440
mov dword [edi + 8], eax
mov eax, esi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4acc10
sub eax, edx
mov ecx, edi
or byte [ecx + 0x15], 4
and eax, 0x7fffffff
mov dword [ecx + 0x10], eax
xor ebx, ebx
jmp 0x4acefd
mov dword [esp + 0x44], esi
cmp dword [esp + 0x18], 0
jl 0x4acca4
cmp byte [esp + 0x1d], 0
je 0x4acc7b
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov ebx, esi
test ecx, ecx
jle 0x4acc74
mov edi, edi
mov al, byte [ebx]
dec ecx
test al, al
je 0x4acc74
inc ebx
cmp al, 0xc0
jb 0x4acc70
mov dl, byte [ebx]
and dl, 0xc0
cmp dl, 0x80
jne 0x4acc70
mov al, byte [ebx + 1]
inc ebx
and al, 0xc0
cmp al, 0x80
je 0x4acc66
test ecx, ecx
jg 0x4acc50
sub ebx, esi
jmp 0x4ace01
mov eax, dword [esp + 0x18]
xor ebx, ebx
test eax, eax
jle 0x4acefd
mov ecx, dword [esp + 0x14]
lea ecx, [ecx]
cmp byte [ebx + ecx], 0
je 0x4acefd
inc ebx
cmp ebx, eax
jl 0x4acc90
jmp 0x4acefd
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4accb0
sub eax, edx
and eax, 0x7fffffff
jmp 0x4acdff
cmp dl, 0xe
setne al
dec al
and al, 0xfb
add al, 0x27
cmp byte [esp + 0x13], 0
mov byte [esp + 0x12], al
je 0x4acce5
mov ecx, ebx
call fcn.004abdc0
mov ebx, eax
jmp 0x4accee
mov ebx, dword [esi]
add esi, 4
mov dword [esp + 0x28], esi
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 0x38], eax
test eax, eax
je 0x4acd0e
cmp byte [esp + 0x11], 0xa
mov ebx, str.NULL
je 0x4acd0e
mov ebx, str._NULL_
mov eax, dword [esp + 0x18]
xor ecx, ecx
xor edi, edi
mov esi, eax
test eax, eax
je 0x4acd53
mov al, byte [edi + ebx]
test al, al
je 0x4acd53
cmp al, byte [esp + 0x12]
jne 0x4acd2a
inc ecx
cmp byte [esp + 0x1d], 0
je 0x4acd4d
and al, 0xc0
cmp al, 0xc0
jne 0x4acd4d
mov dl, byte [ebx + edi + 1]
and dl, al
cmp dl, 0x80
jne 0x4acd4d
mov al, byte [ebx + edi + 2]
inc edi
and al, 0xc0
cmp al, 0x80
je 0x4acd42
inc edi
sub esi, 1
jne 0x4acd1c
cmp dword [esp + 0x38], 0
jne 0x4acd69
cmp byte [esp + 0x11], 0xa
mov dword [esp + 0x48], 1
je 0x4acd71
mov dword [esp + 0x48], 0
lea eax, [ecx + edi + 3]
cmp eax, 0x46
jle 0x4acda3
cdq
mov ecx, eax
or ecx, edx
je 0x4acd8d
push edx
push eax
call fcn.004ab330
add esp, 8
jmp 0x4acd8f
xor eax, eax
mov dword [esp + 0x44], eax
mov esi, eax
mov dword [esp + 0x14], eax
test eax, eax
je 0x4ad17d
jmp 0x4acdae
lea esi, [esp + 0x90]
mov dword [esp + 0x14], esi
xor eax, eax
cmp dword [esp + 0x48], eax
je 0x4acdc1
mov dl, byte [esp + 0x12]
mov byte [esi], dl
mov eax, 1
mov ecx, edi
xor edi, edi
mov dword [esp + 0x38], ecx
test ecx, ecx
jle 0x4acde8
lea ecx, [ecx]
mov cl, byte [edi + ebx]
mov byte [eax + esi], cl
inc eax
cmp cl, byte [esp + 0x12]
jne 0x4acde1
mov byte [eax + esi], cl
inc eax
inc edi
cmp edi, dword [esp + 0x38]
jl 0x4acdd0
cmp dword [esp + 0x48], 0
je 0x4acdf7
mov cl, byte [esp + 0x12]
mov byte [eax + esi], cl
inc eax
mov edx, dword [esp + 0x14]
mov byte [eax + edx], 0
mov ebx, eax
cmp byte [esp + 0x1d], 0
je 0x4acefd
cmp dword [esp + 0x20], 0
jle 0x4acefd
lea eax, [ebx - 1]
test eax, eax
jl 0x4acefd
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
lea ebx, [ebx]
mov cl, byte [eax + esi]
and cl, 0xc0
dec eax
cmp cl, 0x80
jne 0x4ace3d
inc edi
test eax, eax
jge 0x4ace30
mov dword [esp + 0x20], edi
jmp 0x4acefd
mov ecx, dword [esp + 0x30]
test byte [ecx + 0x15], 1
je case.default.0x4ac162
add esi, 4
mov dword [esp + 0x28], esi
mov esi, dword [esi - 4]
test esi, esi
je 0x4acef7
mov eax, dword [esi + 4]
test eax, eax
je 0x4acef7
mov edx, dword [esi]
push eax
push edx
push ecx
call fcn.004ad3c0
add esp, 0xc
jmp 0x4acef7
mov edi, dword [esp + 0x30]
test byte [edi + 0x15], 1
je case.default.0x4ac162
mov eax, dword [esi]
add esi, 4
add esi, 4
mov dword [esp + 0x28], esi
mov esi, dword [esi - 4]
lea ecx, [esi + esi*8]
lea esi, [eax + ecx*8 + 8]
mov eax, dword [esi + 4]
test eax, eax
je 0x4acee8
push eax
push edi
call fcn.004ad410
mov eax, dword [edi + 0x10]
inc eax
add esp, 8
cmp eax, dword [edi + 8]
jb 0x4aced8
push 0x5f8a90
mov eax, 1
mov ecx, edi
call fcn.004ad390
add esp, 4
jmp 0x4acee8
mov edx, dword [edi + 4]
mov dword [edi + 0x10], eax
mov cl, byte [0x5f8a90]
mov byte [edx + eax - 1], cl
mov edx, dword [esi + 8]
push edx
mov eax, edi
push eax
call fcn.004ad410
add esp, 8
xor ebx, ebx
mov dword [esp + 0x20], ebx
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x30]
sub edi, ebx
mov dword [esp + 0x20], edi
test edi, edi
jle 0x4ad01d
cmp byte [esp + 0x1e], 0
jne 0x4acf82
mov edx, dword [esi + 0x10]
mov eax, edi
mov dword [esp + 0x68], edx
cdq
mov ecx, edi
mov edi, dword [esp + 0x68]
add edi, eax
mov dword [esp + 0x6c], 0
mov eax, dword [esp + 0x6c]
adc eax, edx
xor edx, edx
cmp eax, edx
mov dword [esp + 0x80], edi
mov edi, dword [esi + 8]
jl 0x4acf6a
jg 0x4acf55
cmp dword [esp + 0x80], edi
jb 0x4acf6a
mov edi, dword [esp + 0x20]
push edi
call fcn.004ad220
mov ecx, eax
add esp, 4
test ecx, ecx
jle 0x4acf82
jmp 0x4acf70
mov edi, dword [esp + 0x20]
mov edi, edi
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 4]
dec ecx
mov byte [eax + edx], 0x20
inc dword [esi + 0x10]
test ecx, ecx
jg 0x4acf70
mov eax, dword [esi + 0x10]
add eax, ebx
cmp eax, dword [esi + 8]
jb 0x4acf9f
mov ecx, dword [esp + 0x14]
push ecx
mov eax, ebx
mov ecx, esi
call fcn.004ad390
add esp, 4
jmp 0x4acfbc
test ebx, ebx
je 0x4acfbc
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x14]
push ebx
sub ecx, ebx
push edx
add ecx, eax
push ecx
mov dword [esi + 0x10], eax
call fcn.0058ff50
add esp, 0xc
cmp byte [esp + 0x1e], 0
je 0x4ad057
mov edx, dword [esi + 0x10]
mov eax, edi
mov dword [esp + 0x70], edx
cdq
mov ecx, edi
mov edi, dword [esp + 0x70]
xor ebx, ebx
add edi, eax
adc ebx, edx
mov edx, dword [esi + 8]
xor eax, eax
cmp ebx, eax
mov dword [esp + 0x78], edi
jl 0x4ad003
jg 0x4acff0
cmp edi, edx
jb 0x4ad003
mov eax, dword [esp + 0x20]
push eax
call fcn.004ad220
mov ecx, eax
add esp, 4
test ecx, ecx
jle 0x4ad057
mov eax, 1
mov edi, dword [esi + 0x10]
mov edx, dword [esi + 4]
sub ecx, eax
mov byte [edx + edi], 0x20
add dword [esi + 0x10], eax
test ecx, ecx
jg 0x4ad008
jmp 0x4ad057
mov eax, dword [esi + 0x10]
add eax, ebx
cmp eax, dword [esi + 8]
jb 0x4ad03a
mov ecx, dword [esp + 0x14]
push ecx
mov eax, ebx
mov ecx, esi
call fcn.004ad390
add esp, 4
jmp 0x4ad057
test ebx, ebx
je 0x4ad057
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x14]
push ebx
sub ecx, ebx
push edx
add ecx, eax
push ecx
mov dword [esi + 0x10], eax
call fcn.0058ff50
add esp, 0xc
mov edi, dword [esp + 0x44]
test edi, edi
je 0x4ad0fd
mov esi, dword [esi]
test esi, esi
je 0x4ad09d
cmp dword [esi + 0x1d8], 0
je 0x4ad07d
mov eax, edi
mov ecx, esi
call fcn.004ab500
jmp 0x4ad0f5
cmp edi, dword [esi + 0x128]
jb 0x4ad09d
cmp edi, dword [esi + 0x12c]
jae 0x4ad09d
mov edx, dword [esi + 0x124]
mov dword [edi], edx
mov dword [esi + 0x124], edi
jmp 0x4ad0f5
cmp dword [0x631928], 0
je 0x4ad0eb
mov eax, dword [0x640888]
test eax, eax
je 0x4ad0b9
push eax
call dword [0x631984]
add esp, 4
push edi
call dword [0x631960]
sub dword [0x640828], eax
dec dword [0x64084c]
add esp, 4
push edi
call dword [0x631958]
mov eax, dword [0x640888]
add esp, 4
test eax, eax
je 0x4ad0f5
push eax
call dword [0x63198c]
jmp 0x4ad0f2
push edi
call dword [0x631958]
add esp, 4
mov dword [esp + 0x44], 0
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x2c], eax
movsx eax, byte [eax]
test eax, eax
jne 0x4abe7b
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.0057ffd2
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx + 0x10]
inc eax
cmp eax, dword [ecx + 8]
jb 0x4ad156
push 0x5f4694
mov eax, 1
call fcn.004ad390
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.0057ffd2
mov esp, ebp
pop ebp
ret
mov dword [ecx + 0x10], eax
mov ecx, dword [ecx + 4]
mov dl, byte [0x5f4694]
mov byte [ecx + eax - 1], dl
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.0057ffd2
mov esp, ebp
pop ebp
ret
fstp st(0)
mov eax, dword [esp + 0x30]
mov byte [eax + 0x14], 7
mov dword [eax + 8], 0
mov ecx, dword [esp + 0xdc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0057ffd2
mov esp, ebp
pop ebp
ret