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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2b8
movsx ecx, word [0x6a6908]
imul ecx, ecx, 0x4af8
push ebx
xor edx, edx
push ebp
xor eax, eax
cmp word [ecx + 0x6ae45a], dx
push esi
push edi
mov dword [esp + 0x14], edx
jle 0x4223f6
xor eax, eax
mov ecx, 0x25
mov dword [esp + 0x24], eax
lea edi, [esp + 0x1cc]
mov dword [esp + 0x28], eax
movsx ebp, dx
mov word [esp + 0x2c], ax
lea edx, [esp + 0x1cc]
rep stosd dword es:[edi], eax
lea ecx, [ebp + 1]
push ecx
push str._02d
push edx
stosw word es:[edi], ax
call dword [sym.imp.MSVCRT.dll_sprintf]
mov edi, str.J00
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x30]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x74]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push edx
rep movsb byte es:[edi], byte [esi]
mov cx, word [esp + 0x1dc]
lea edi, [esp + 0x78]
mov word [esp + 0x35], cx
mov ecx, 0x1a
rep stosd dword es:[edi], eax
lea eax, [esp + 0x34]
push eax
call fcn.0043e660
add esp, 0x14
test ax, ax
jl 0x421aa8
lea ebx, [ebp + ebp*4]
shl ebx, 5
add ebx, ebp
shl ebx, 6
mov al, byte [ebx + 0x581460]
test al, al
je 0x421aba
mov ecx, 0x32
xor eax, eax
lea edi, [esp + 0x104]
lea esi, [ebx + 0x581464]
rep stosd dword es:[edi], eax
mov ecx, 0x19
lea edi, [esp + 0x104]
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x104]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [esp + 0x104]
push ecx
push edx
call fcn.00461d80
lea edi, [esp + 0x10c]
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x421aba
lea eax, [esp + 0x104]
push eax
call fcn.0043b530
add esp, 4
test ax, ax
jge 0x421aba
lea ecx, [esp + 0x24]
push ecx
call fcn.0043c8a0
add esp, 4
jmp 0x421e70
mov ax, word [esp + 0x24]
mov cl, byte [esp + 0x26]
xor edx, edx
lea edi, [esp + 0x104]
mov dword [esp + 0x18], edx
mov word [esp + 0x18], ax
mov byte [esp + 0x1a], cl
mov ecx, 0x32
xor eax, eax
mov dword [esp + 0x1c], edx
rep stosd dword es:[edi], eax
mov al, byte [esp + 0x93]
mov word [esp + 0x20], dx
cmp al, 0x31
jne 0x421d4f
shl ebp, 5
fld qword [ebp + 0x485d28]
lea ebp, [ebp + 0x485d28]
call sub.MSVCRT.dll__ftol
mov dx, ax
test dx, dx
jne 0x421bc2
xor ebp, ebp
cmp word [esp + 0x94], bp
jle 0x421e70
mov ecx, 0x32
xor eax, eax
lea edi, [esp + 0x104]
rep stosd dword es:[edi], eax
movsx ecx, bp
mov eax, ecx
lea edi, [esp + 0x104]
shl eax, 4
add eax, ecx
mov ecx, 0x19
lea edx, [eax + eax*2]
xor eax, eax
lea esi, [ebx + edx*2 + 0x5814ca]
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x104]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x104]
push ecx
push eax
call fcn.00461d80
lea edi, [esp + 0x10c]
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x421e98
lea ecx, [esp + 0x104]
push ecx
call fcn.0043b530
add esp, 4
test ax, ax
jge 0x421e98
inc ebp
cmp bp, word [esp + 0x94]
jl 0x421b2a
jmp 0x421e70
cmp byte [esp + 0xa0], 0x31
jne 0x421c03
movsx eax, dx
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fld qword [esp + 0xa8]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x421eb8
fld qword [esp + 0xb0]
fcomp st(1)
fnstsw ax
test ah, 1
fstp st(0)
jne 0x421f00
jmp 0x421c14
mov ax, word [esp + 0x94]
cmp ax, dx
jl 0x421f45
mov ecx, 0x32
xor eax, eax
lea edi, [esp + 0x104]
dec edx
rep stosd dword es:[edi], eax
movsx ecx, dx
mov eax, ecx
lea edi, [esp + 0x104]
shl eax, 4
add eax, ecx
lea edx, [esp + 0x104]
lea ecx, [eax + eax*2]
xor eax, eax
lea esi, [ebx + ecx*2 + 0x5814ca]
mov ecx, 0x19
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x104]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
call fcn.00461d80
lea edi, [esp + 0x10c]
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x421e70
lea eax, [esp + 0x104]
push eax
call fcn.0043b530
add esp, 4
test ax, ax
jge 0x421e70
mov dword [ebp], 0
mov dword [ebp + 4], 0
xor ebp, ebp
cmp word [esp + 0x94], bp
jle 0x421e70
mov ecx, 0x32
xor eax, eax
lea edi, [esp + 0x104]
lea edx, [esp + 0x104]
rep stosd dword es:[edi], eax
movsx ecx, bp
mov eax, ecx
lea edi, [esp + 0x104]
shl eax, 4
add eax, ecx
lea ecx, [eax + eax*2]
xor eax, eax
lea esi, [ebx + ecx*2 + 0x5814ca]
mov ecx, 0x19
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x104]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
call fcn.00461d80
lea edi, [esp + 0x10c]
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x421f7f
lea eax, [esp + 0x104]
push eax
call fcn.0043b530
add esp, 4
test ax, ax
jge 0x421f7f
inc ebp
cmp bp, word [esp + 0x94]
jl 0x421cb7
jmp 0x421e70
cmp al, 0x32
jne 0x421e70
mov al, byte [esp + 0xa0]
cmp al, 0x31
jne 0x421e04
fld qword [esp + 0xb0]
fcomp qword [0x4671d8]
fnstsw ax
test ah, 0x40
je 0x421da4
fld qword [esp + 0xa8]
fcomp qword [0x4671d8]
fnstsw ax
test ah, 1
jne 0x421da4
mov dword [esp + 0xb0], 0xe0000000
mov dword [esp + 0xb4], 0x416312cf
shl ebp, 5
mov eax, dword [esp + 0xac]
mov ecx, dword [ebp + 0x485d2c]
mov edx, dword [ebp + 0x485d28]
lea esi, [ebp + 0x485d28]
push ecx
mov ecx, dword [esp + 0xac]
push edx
push eax
push ecx
call fcn.00461740
add esp, 0x10
test eax, eax
jg 0x421f9f
mov edx, dword [esi + 4]
mov eax, dword [esi]
mov ecx, dword [esp + 0xb4]
push edx
mov edx, dword [esp + 0xb4]
push eax
push ecx
push edx
call fcn.00461740
add esp, 0x10
test eax, eax
jl 0x422060
jmp 0x421e70
cmp al, 0x32
jne 0x421e3b
mov edx, dword [esp + 0xac]
shl ebp, 5
add ebp, 0x485d28
mov eax, dword [ebp + 4]
mov ecx, dword [ebp]
push eax
mov eax, dword [esp + 0xac]
push ecx
push edx
push eax
call fcn.00461740
add esp, 0x10
test eax, eax
jg 0x422128
jmp 0x421e70
cmp al, 0x33
jne 0x421e70
mov eax, dword [esp + 0xb4]
shl ebp, 5
add ebp, 0x485d28
mov ecx, dword [ebp + 4]
mov edx, dword [ebp]
push ecx
mov ecx, dword [esp + 0xb4]
push edx
push eax
push ecx
call fcn.00461740
add esp, 0x10
test eax, eax
jl 0x4221f1
movsx eax, word [0x6a6908]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x4af8
inc edx
cmp dx, word [eax + 0x6ae45a]
mov dword [esp + 0x14], edx
jge 0x4223f4
jmp 0x421992
lea ecx, [esp + 0x18]
lea edx, [esp + 0x104]
push ecx
push 0x46e880
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
jmp 0x4222ae
fstp st(0)
fld qword [esp + 0xa8]
call sub.MSVCRT.dll__ftol
movsx ecx, word [esp + 0x14]
shl ecx, 5
movsx eax, ax
add ecx, 0x485d28
push eax
fld qword [ecx]
call sub.MSVCRT.dll__ftol
movsx edx, ax
lea eax, [esp + 0x1c]
push edx
push eax
lea ecx, [esp + 0x110]
push str._s_02d
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
jmp 0x4222ab
fld qword [esp + 0xb0]
call sub.MSVCRT.dll__ftol
movsx edx, ax
movsx eax, word [esp + 0x14]
shl eax, 5
add eax, 0x485d28
push edx
fld qword [eax]
call sub.MSVCRT.dll__ftol
movsx ecx, ax
lea edx, [esp + 0x1c]
push ecx
push edx
lea eax, [esp + 0x110]
push 0x46e830
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
jmp 0x4222ab
movsx edx, word [esp + 0x14]
shl edx, 5
movsx ecx, ax
add edx, 0x485d28
push ecx
fld qword [edx]
call sub.MSVCRT.dll__ftol
movsx eax, ax
lea ecx, [esp + 0x1c]
push eax
push ecx
lea edx, [esp + 0x110]
push 0x46e830
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
jmp 0x4222ab
lea eax, [esp + 0x18]
lea ecx, [esp + 0x104]
push eax
push 0x46e880
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
jmp 0x4222ae
movsx edx, word [esp + 0x14]
mov ecx, 0xc
xor eax, eax
lea edi, [esp + 0x34]
mov esi, dword [sym.imp.MSVCRT.dll_sprintf]
rep stosd dword es:[edi], eax
shl edx, 5
add edx, 0x485d28
stosw word es:[edi], ax
mov eax, dword [edx + 4]
push eax
mov ecx, dword [edx]
lea edx, [esp + 0x38]
push ecx
push 0x46a328
push edx
call esi
lea edi, [esp + 0x44]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x44]
push ecx
push eax
call fcn.00415bf0
mov ecx, 0xc
xor eax, eax
lea edi, [esp + 0xe8]
mov edx, dword [esp + 0xc0]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0xc4]
add esp, 0x18
stosw word es:[edi], ax
push ecx
push edx
lea eax, [esp + 0xd8]
push 0x46a328
push eax
call esi
lea edi, [esp + 0xe0]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0xe4]
push ecx
call fcn.00415bf0
add esp, 0x18
lea edx, [esp + 0xd0]
lea eax, [esp + 0x34]
lea ecx, [esp + 0x18]
push edx
push eax
push ecx
push str._s_s
jmp 0x4222a1
mov ecx, 0xc
xor eax, eax
lea edi, [esp + 0x34]
mov esi, dword [sym.imp.MSVCRT.dll_sprintf]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
movsx eax, word [esp + 0x14]
shl eax, 5
add eax, 0x485d28
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [eax]
lea eax, [esp + 0x38]
push edx
push 0x46a328
push eax
call esi
lea edi, [esp + 0x44]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x48]
push ecx
call fcn.00415bf0
mov ecx, 0xc
xor eax, eax
lea edi, [esp + 0xe8]
mov edx, dword [esp + 0xcc]
rep stosd dword es:[edi], eax
add esp, 0x18
lea ecx, [esp + 0xd0]
stosw word es:[edi], ax
mov eax, dword [esp + 0xb0]
push edx
push eax
push 0x46a328
push ecx
call esi
lea edi, [esp + 0xe0]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xe0]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
call fcn.00415bf0
add esp, 0x18
lea eax, [esp + 0xd0]
lea ecx, [esp + 0x34]
lea edx, [esp + 0x18]
push eax
push ecx
push edx
lea eax, [esp + 0x110]
push 0x46e7e8
push eax
jmp 0x4222a9
mov ecx, 0xc
xor eax, eax
lea edi, [esp + 0x34]
mov esi, dword [sym.imp.MSVCRT.dll_sprintf]
rep stosd dword es:[edi], eax
movsx ecx, word [esp + 0x14]
shl ecx, 5
add ecx, 0x485d28
stosw word es:[edi], ax
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ecx]
lea ecx, [esp + 0x38]
push eax
push 0x46a328
push ecx
call esi
lea edi, [esp + 0x44]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x44]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
call fcn.00415bf0
mov ecx, 0xc
xor eax, eax
lea edi, [esp + 0xe8]
add esp, 0x18
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0xa8]
lea edx, [esp + 0xd0]
stosw word es:[edi], ax
mov eax, dword [esp + 0xac]
push eax
push ecx
push 0x46a328
push edx
call esi
lea edi, [esp + 0xe0]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0xe0]
push ecx
push eax
call fcn.00415bf0
add esp, 0x18
lea ecx, [esp + 0xd0]
lea edx, [esp + 0x34]
lea eax, [esp + 0x18]
push ecx
push edx
push eax
lea ecx, [esp + 0x110]
push str._s_s
push ecx
jmp 0x4222a9
movsx edx, word [esp + 0x14]
mov ecx, 0xc
xor eax, eax
lea edi, [esp + 0x34]
mov esi, dword [sym.imp.MSVCRT.dll_sprintf]
rep stosd dword es:[edi], eax
shl edx, 5
add edx, 0x485d28
stosw word es:[edi], ax
mov eax, dword [edx + 4]
push eax
mov ecx, dword [edx]
lea edx, [esp + 0x38]
push ecx
push 0x46a328
push edx
call esi
lea edi, [esp + 0x44]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x44]
push ecx
push eax
call fcn.00415bf0
mov ecx, 0xc
xor eax, eax
lea edi, [esp + 0x4c]
mov edx, dword [esp + 0xc8]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0xcc]
add esp, 0x18
stosw word es:[edi], ax
push ecx
push edx
lea eax, [esp + 0x3c]
push 0x46a328
push eax
call esi
lea edi, [esp + 0x44]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x48]
push ecx
call fcn.00415bf0
add esp, 0x18
lea edx, [esp + 0xd0]
lea eax, [esp + 0x34]
lea ecx, [esp + 0x18]
push edx
push eax
push ecx
push 0x46e7c4
lea edx, [esp + 0x114]
push edx
call esi
add esp, 0x14
mov ecx, 0x25
xor eax, eax
lea edi, [esp + 0x1cc]
or ebx, 0xffffffff
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
or ecx, 0xffffffff
mov edi, 0x46e7a4
xor eax, eax
lea edx, [esp + 0x1cc]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov ebp, ecx
mov esi, edi
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x19
lea edi, [esp + 0x264]
rep stosd dword es:[edi], eax
movsx eax, word [0x6a6908]
imul eax, eax, 0x4af8
add eax, 0x6ae335
lea edi, [esp + 0x264]
mov ecx, dword [eax]
mov dword [esp + 0x264], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x268], edx
mov cx, word [eax + 8]
mov word [esp + 0x26c], cx
or ecx, 0xffffffff
mov dl, byte [eax + 0xa]
xor eax, eax
mov byte [esp + 0x26e], dl
lea edx, [esp + 0x1cc]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
lea edx, [esp + 0x1cc]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x46e7a0
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
lea edx, [esp + 0x1cc]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x104]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00415800
lea eax, [esp + 0x1cc]
push eax
push 4
push 0
call fcn.00415700
add esp, 0xc
movsx eax, bx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
pop edi
pop esi
movsx eax, ax
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret