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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44c
mov dword [esp + 0x34], ecx
push ebx
mov ecx, dword [ebp + 0x14]
push esi
mov esi, dword [ebp + 8]
mov edx, ecx
push edi
xor eax, eax
mov edi, esi
mov ebx, dword [ebp + 0xc]
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov dword [esp + 0x20], 1
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 8]
mov dword [esp + 0x28], ecx
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x10], edi
mov dword [esp + 0x44], eax
mov eax, dword [0x659958]
cmp eax, 0x18
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
jge 0x43a418
fild dword [ebx + 4]
fstp dword [esp + 0x28]
fild dword [ebx + 8]
fstp dword [esp + 0x18]
fild dword [ebx + 0xc]
fstp dword [esp + 0x44]
fild dword [ebx + 0x10]
fstp dword [esp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
cmp ecx, eax
jle 0x43a424
mov eax, ecx
mov edx, dword [eax*4 + 0x534bac]
mov dword [esp + 0x24], edx
mov edx, eax
sub edx, ecx
mov ecx, dword [ebp + 0x1c]
sub eax, ecx
movsx ecx, byte [ebx]
mov edx, dword [edx*4 + 0x534bac]
mov eax, dword [eax*4 + 0x534bac]
cmp ecx, 6
mov dword [esp + 0x30], edx
mov dword [esp + 0x3c], eax
ja case.default.0x43a45a
jmp dword [ecx*4 + 0x43ac24]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x18], edi
call fcn.0043a330
mov ecx, eax
call fcn.004b53f0
cmp eax, 2
jne 0x43a483
movsx edi, di
mov dword [esp + 0x18], edi
jmp 0x43a487
mov edi, dword [esp + 0x18]
mov al, byte [ebx + 1]
test al, al
je 0x43a562
mov ecx, dword [esp + 0x3c]
xor edi, edi
fild dword [ebx + 0x10]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
fild qword [esp + 0x10]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x24]
fmulp st(1)
fild dword [ebx + 8]
fild dword [ebx + 0xc]
fild qword [esp + 0x10]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edi
fmulp st(1)
fsub st(2)
fild dword [esp + 0x18]
fsub st(2)
fmulp st(1)
fild dword [ebx + 4]
fsub st(2)
fdivp st(1)
fadd st(2)
fild qword [esp + 0x10]
fdivp st(1)
fstp qword [esp + 0x28]
fstp st(0)
fstp st(0)
fld qword [esp + 0x28]
call sub.MSVCRT.dll__ftol
cdq
xor eax, edx
sub eax, edx
push eax
call fcn.00471730
fld qword [esp + 0x2c]
fcomp qword [0x5339f8]
mov ecx, eax
add esp, 4
fnstsw ax
test ah, 1
je 0x43a519
inc ecx
movsx eax, byte [ebx + 2]
cmp ecx, eax
jle 0x43a530
mov dword [esp + 0x20], edi
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
movsx ecx, byte [ebx + 3]
mov edi, dword [sym.imp.MSVCRT.dll_sprintf]
push ecx
push eax
lea edx, [esp + 0x50]
push str.___d._df
push edx
call edi
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
push eax
lea edx, [esp + 0x5c]
push ecx
push edx
push esi
call edi
add esp, 0x20
jmp case.default.0x43a45a
mov eax, edi
cdq
xor eax, edx
sub eax, edx
push eax
call fcn.00471730
add esp, 4
mov dword [esp + 0x24], eax
test edi, edi
jge 0x43a57f
inc eax
mov dword [esp + 0x24], eax
mov al, byte [ebx + 3]
movsx edi, byte [ebx + 2]
movsx ecx, al
lea edx, [ecx + edi]
cmp dword [esp + 0x24], edx
jle 0x43a5a7
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
test al, al
jle 0x43a5fa
mov eax, dword [ecx*4 + 0x534bac]
mov dword [esp + 0x14], 0
fild dword [esp + 0x18]
mov dword [esp + 0x10], eax
push ecx
fild qword [esp + 0x14]
push edi
mov edi, dword [sym.imp.MSVCRT.dll_sprintf]
fdivp st(1)
lea ecx, [esp + 0x50]
push str.___d._df
push ecx
fstp qword [esp + 0x20]
call edi
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
push edx
lea ecx, [esp + 0x5c]
push eax
push ecx
push esi
call edi
add esp, 0x20
jmp case.default.0x43a45a
mov edx, dword [esp + 0x18]
push edx
push 0x56c390
push esi
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
jmp case.default.0x43a45a
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x1c], edi
call fcn.0043a330
mov ecx, eax
call fcn.004b53f0
cmp eax, 2
jne 0x43a63a
and edi, 0xffff
mov eax, edi
mov dword [esp + 0x1c], eax
jmp 0x43a63e
mov eax, dword [esp + 0x1c]
mov cl, byte [ebx + 1]
test cl, cl
je 0x43a73d
mov ecx, dword [ebx + 0x10]
mov edx, dword [esp + 0x3c]
xor edi, edi
mov dword [esp + 0x10], ecx
mov ecx, dword [ebx + 8]
mov dword [esp + 0x14], edi
fild qword [esp + 0x10]
mov dword [esp + 0x10], edx
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x14], edi
fild qword [esp + 0x10]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x14], edi
fmulp st(1)
fild qword [esp + 0x10]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edi
fild qword [esp + 0x10]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
fild qword [esp + 0x10]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edi
mov edx, dword [ebx + 4]
mov eax, dword [esp + 0x24]
fmulp st(1)
fsub st(2)
fild qword [esp + 0x10]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edi
fsub st(2)
fmulp st(1)
fild qword [esp + 0x10]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edi
fsub st(2)
fdivp st(1)
fadd st(2)
fild qword [esp + 0x10]
fdivp st(1)
fstp qword [esp + 0x28]
fstp st(0)
fstp st(0)
fld qword [esp + 0x28]
call sub.MSVCRT.dll__ftol
cdq
xor eax, edx
sub eax, edx
push eax
call fcn.00471730
movsx ecx, byte [ebx + 2]
add esp, 4
cmp eax, ecx
jle 0x43a70b
mov dword [esp + 0x20], edi
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
movsx edx, byte [ebx + 3]
mov edi, dword [sym.imp.MSVCRT.dll_sprintf]
push edx
push ecx
lea eax, [esp + 0x50]
push str.___d._df
push eax
call edi
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
push ecx
lea eax, [esp + 0x5c]
push edx
push eax
push esi
call edi
add esp, 0x20
jmp case.default.0x43a45a
push eax
call fcn.00471730
movsx edi, byte [ebx + 2]
mov dword [esp + 0x2c], eax
mov al, byte [ebx + 3]
movsx ecx, al
add esp, 4
lea edx, [ecx + edi]
cmp dword [esp + 0x28], edx
jle 0x43a772
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
test al, al
jle 0x43a7cf
mov eax, dword [esp + 0x1c]
mov edx, dword [ecx*4 + 0x534bac]
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0x14], eax
push ecx
fild qword [esp + 0x14]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
fild qword [esp + 0x14]
push edi
mov edi, dword [sym.imp.MSVCRT.dll_sprintf]
fdivp st(1)
lea eax, [esp + 0x50]
push str.___d._df
push eax
fstp qword [esp + 0x20]
call edi
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push ecx
lea eax, [esp + 0x5c]
push edx
push eax
push esi
call edi
add esp, 0x20
jmp case.default.0x43a45a
mov ecx, dword [esp + 0x1c]
push ecx
push 0x56c62c
push esi
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
jmp case.default.0x43a45a
mov cl, byte [ebx + 1]
mov eax, edi
test cl, cl
je 0x43a888
mov eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x3c]
xor esi, esi
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x14], esi
fild qword [esp + 0x10]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x14], esi
fild qword [esp + 0x10]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x24]
fmulp st(1)
fild qword [esp + 0x10]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], esi
fild qword [esp + 0x10]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], esi
fild qword [esp + 0x10]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], esi
mov edx, dword [ebx + 4]
fmulp st(1)
fsub st(2)
fild qword [esp + 0x10]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], esi
fsub st(2)
fmulp st(1)
fild qword [esp + 0x10]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], esi
fsub st(2)
fdivp st(1)
fadd st(2)
fild qword [esp + 0x10]
fdivp st(1)
call sub.MSVCRT.dll__ftol
fstp st(0)
fstp st(0)
jmp 0x43a88a
xor esi, esi
push eax
lea ecx, [esp + 0x5c]
push 0x56c6a8
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov ecx, dword [esp + 0x4c]
add esp, 0xc
lea edx, [esp + 0x58]
push edx
push ebx
call fcn.0043ac40
cmp eax, dword [ebp + 0x14]
ja 0x43a8c7
mov edi, dword [ebp + 8]
mov ecx, eax
lea esi, [esp + 0x58]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x43ab49
mov dword [esp + 0x20], esi
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov dl, byte [ebx + 1]
xor ecx, ecx
xor eax, eax
test dl, dl
mov dword [esp + 0x28], eax
je 0x43a984
mov edx, dword [ebx + 0x10]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], edx
mov edx, dword [ebx + 8]
mov dword [esp + 0x14], ecx
fild qword [esp + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x14], ecx
fild qword [esp + 0x10]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x14], ecx
fmulp st(1)
fild qword [esp + 0x10]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
fild qword [esp + 0x10]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
fild qword [esp + 0x10]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x24]
fmulp st(1)
fsub st(2)
fild qword [esp + 0x10]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
fsub st(2)
fmulp st(1)
fild qword [esp + 0x10]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
fsub st(2)
fdivp st(1)
fadd st(2)
fild qword [esp + 0x10]
fdivp st(1)
call sub.MSVCRT.dll__ftol
fstp st(0)
mov edi, eax
mov eax, dword [esp + 0x28]
fstp st(0)
xor ecx, ecx
mov edx, dword [ebp + 0x14]
cmp edx, ecx
jle case.default.0x43a45a
test dword [edx*4 + 0x659a30], edi
je 0x43a99e
mov byte [eax + esi], 0x31
jmp 0x43a9a2
mov byte [eax + esi], 0x30
shl edi, 1
inc eax
cmp eax, edx
jl 0x43a98f
jmp case.default.0x43a45a
mov ecx, dword [ebp + 0x14]
mov eax, 0x2a2a2a2a
mov edx, ecx
mov edi, esi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], eax
mov al, byte [ebx + 1]
test al, al
je 0x43aa07
fld dword [esp + 0x10]
fsub dword [esp + 0x18]
fld dword [esp + 0x44]
fsub dword [esp + 0x1c]
fmulp st(1)
fld dword [esp + 0x28]
fsub dword [esp + 0x18]
fdivp st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x30]
movsx ecx, byte [ebx + 3]
movsx edx, byte [ebx + 2]
mov esi, dword [sym.imp.MSVCRT.dll_sprintf]
push ecx
push edx
lea eax, [esp + 0x50]
push str.___d._df
push eax
call esi
fld dword [esp + 0x40]
add esp, 8
lea ecx, [esp + 0x50]
lea edx, [esp + 0x60]
fstp qword [esp]
push ecx
push edx
call esi
lea edi, [esp + 0x68]
or ecx, 0xffffffff
xor eax, eax
push 0x2e
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x6c]
mov esi, ecx
push eax
mov edi, esi
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 0x18
test eax, eax
je 0x43aa67
lea ecx, [esp + 0x58]
sub eax, ecx
mov edi, eax
movsx edx, byte [ebx + 2]
cmp edi, edx
ja 0x43a75d
mov edi, dword [ebp + 8]
mov ecx, esi
mov eax, ecx
lea esi, [esp + 0x58]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x43ab49
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
call fcn.00472a80
mov al, byte [ebx + 1]
add esp, 8
fstp qword [esp + 0x30]
test al, al
je 0x43aacb
fld dword [esp + 0x18]
fsubr qword [esp + 0x30]
fld dword [esp + 0x44]
fsub dword [esp + 0x1c]
fmulp st(1)
fld dword [esp + 0x28]
fsub dword [esp + 0x18]
fdivp st(1)
fadd dword [esp + 0x1c]
fstp qword [esp + 0x30]
movsx eax, byte [ebx + 3]
movsx ecx, byte [ebx + 2]
mov esi, dword [sym.imp.MSVCRT.dll_sprintf]
push eax
push ecx
lea edx, [esp + 0x50]
push str.___d._df
push edx
call esi
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
push eax
lea edx, [esp + 0x5c]
push ecx
lea eax, [esp + 0x70]
push edx
push eax
call esi
lea edi, [esp + 0x78]
or ecx, 0xffffffff
xor eax, eax
push 0x2e
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
lea ecx, [esp + 0x7c]
push ecx
mov edi, esi
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 0x28
test eax, eax
je 0x43ab2b
lea edx, [esp + 0x58]
sub eax, edx
mov edi, eax
movsx eax, byte [ebx + 2]
cmp edi, eax
ja 0x43a75d
mov edi, dword [ebp + 8]
mov ecx, esi
mov edx, ecx
lea esi, [esp + 0x58]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0x14]
push eax
push esi
call fcn.00472ac0
mov edx, eax
mov al, byte [ebx + 0x1b]
add esp, 8
test al, al
je 0x43abdb
cmp al, 3
je 0x43abdb
add edx, esi
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [ebp + 0x14]
not ecx
dec ecx
mov edi, ecx
cmp edi, eax
jge 0x43ac14
mov ecx, esi
push edi
sub ecx, edi
push edx
add ecx, eax
push ecx
call dword [sym.imp.MSVCRT.dll_memmove]
mov al, byte [ebx + 0x1b]
mov ecx, dword [ebp + 0x14]
add esp, 0xc
cmp al, 2
jne 0x43abd3
sub ecx, edi
mov eax, 0x30303030
mov edx, ecx
mov edi, esi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebp + 0x14]
push eax
push esi
call fcn.0043a340
mov eax, dword [esp + 0x28]
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
sub ecx, edi
xor eax, eax
mov edi, esi
jmp 0x43ac06
test edx, edx
jle 0x43ac14
mov ecx, dword [ebp + 0x14]
mov ebx, dword [ebp + 8]
sub ecx, edx
add esi, edx
mov eax, ecx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebx
mov ebx, dword [ebp + 0x14]
sub edi, edx
mov ecx, edx
add edi, ebx
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x20]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18