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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov edx, dword [esp + 0x60]
mov dword [esp], edx
call fcn.0040a670
mov eax, dword [esp + 0x60]
mov esi, dword [eax + 0x70]
mov ebx, dword [eax + 0x68]
test esi, esi
je 0x40a65e
cmp byte [esi + ebx - 1], 0xa
je 0x40a65e
mov byte [esi + ebx], 0xa
mov ecx, dword [esp + 0x60]
inc esi
mov byte [ecx + 0xa8], 1
test ebx, ebx
je 0x409ee5
mov dword [esi + ebx], 0
xor edi, edi
mov dword [esi + ebx + 4], edi
cmp byte [0x425880], 0
jne 0x40a614
mov ebx, dword [esp + 0x60]
mov dword [ebx + 0x70], esi
mov edx, dword [esp + 0x60]
mov esi, dword [edx + 0xb0]
cmp dword [edx], esi
je 0x40a5d7
mov edi, edx
add edi, 0xb0
mov dword [esp], edi
call fcn.0040a670
mov esi, dword [edi + 0x70]
mov ebx, dword [edi + 0x68]
test esi, esi
je 0x40a5cb
cmp byte [esi + ebx - 1], 0xa
je 0x40a5cb
mov byte [esi + ebx], 0xa
inc esi
mov byte [edi + 0xa8], 1
test ebx, ebx
je 0x40a5b0
mov dword [esi + ebx], 0
xor ebp, ebp
mov dword [esi + ebx + 4], ebp
cmp byte [0x425880], 0
jne 0x40a566
mov dword [edi + 0x70], esi
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x60]
mov edi, dword [ebx + 0x68]
mov edx, dword [eax + 0x70]
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x60]
mov ebp, dword [esp + 0x20]
mov edi, dword [eax + 0x118]
mov esi, dword [eax + 0x120]
cmp ebp, edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x3c], esi
je 0x40a548
mov esi, dword [esp + 0x3c]
cmp dword [esp + 0x1c], esi
jae 0x40a51c
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
movzx edx, byte [ecx + eax]
not dl
mov byte [ecx + ebx], dl
mov ecx, dword [ebp]
mov ebx, dword [ebp + 4]
mov eax, dword [edi]
mov edx, dword [edi + 4]
mov esi, ebx
xor eax, ecx
xor esi, edx
or esi, eax
jne 0x409fcb
add ebp, 8
add edi, 8
jmp 0x409fae
movzx edx, byte [edi]
mov esi, ebp
cmp byte [ebp], dl
je 0x40a50e
mov ecx, dword [0x425870]
lea ebp, [ecx - 4]
cmp ebp, 1
jbe 0x40a4f0
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
movzx eax, byte [ebx + 0xa8]
add ebp, edx
mov ebx, ebp
sub ebx, eax
cmp ebx, esi
mov eax, dword [esp + 0x48]
setb dl
mov ebx, dword [esp + 0x3c]
add eax, ebx
mov dword [esp + 0x28], eax
mov ebx, dword [esp + 0x60]
movzx eax, byte [ebx + 0x158]
mov ebx, dword [esp + 0x28]
sub ebx, eax
cmp ebx, edi
setb al
xor eax, edx
test al, 1
je 0x40a035
dec esi
dec edi
cmp esi, dword [esp + 0x20]
mov edx, dword [0x425890]
mov dword [esp + 0x24], edx
je 0x40a064
cmp byte [esi - 1], 0xa
je 0x40a4df
nop
dec esi
dec edi
cmp esi, dword [esp + 0x20]
je 0x40a064
cmp byte [esi - 1], 0xa
jne 0x40a050
dec edx
cmp edx, 0xffffffff
jne 0x40a050
mov edx, dword [esp + 0x60]
lea ebx, [ecx - 4]
cmp ebx, 1
mov dword [edx + 0x88], esi
mov esi, ebp
mov dword [edx + 0x138], edi
mov edi, dword [esp + 0x28]
jbe 0x40a460
mov eax, dword [esp + 0x60]
movzx ecx, byte [eax + 0x158]
cmp byte [eax + 0xa8], cl
je 0x40a460
cmp byte [0x425840], 0
mov edx, dword [esp + 0x60]
mov dword [edx + 0x90], esi
mov dword [edx + 0x140], edi
je 0x40a42f
mov ecx, dword [0x425740]
test ecx, ecx
jne 0x40a42f
mov ecx, dword [0x425710]
cmp ecx, 0x1ffffffe
mov ebx, ecx
mov dword [esp + 0x18], ecx
jg 0x40a42f
mov eax, dword [esp + 0x1c]
cmp ecx, eax
jae 0x40a42f
mov ecx, dword [edx + 0x88]
mov eax, esi
xor edx, edx
sub eax, ecx
mov ecx, 0x20
div ecx
cmp eax, 1
jae 0x40a109
mov eax, 1
cmp eax, 0xe38e389
jbe 0x40a115
mov eax, 0xe38e389
add eax, 5
sub ebp, esi
xor edx, edx
mov dword [esp + 0x2c], eax
mov eax, ebp
div ecx
cmp eax, 1
jae 0x40a12e
mov eax, 1
cmp eax, 0xe38e389
jbe 0x40a13a
mov eax, 0xe38e389
mov dword [esp + 0x34], 1
mov esi, dword [esp + 0x18]
lea edx, [eax + 5]
cmp dword [esp + 0x34], esi
jg 0x40a159
shl dword [esp + 0x34], 1
cmp dword [esp + 0x34], ebx
jle 0x40a14f
mov ecx, dword [esp + 0x34]
mov eax, ebx
mov ebp, dword [esp + 0x2c]
add ecx, ebp
cmp ebx, edx
jle 0x40a16b
mov eax, edx
add ecx, eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
dec eax
shl edx, 2
mov dword [esp + 0x30], eax
mov dword [esp], edx
call fcn.0040ccd0
cmp byte [0x425840], 0
mov dword [esp + 0x44], eax
mov esi, dword [esp + 0x20]
je 0x40a420
mov eax, dword [esp + 0x60]
mov ebp, dword [eax + 0x88]
cmp ebp, esi
je 0x40a40c
cmp dword [esp + 0x20], ebp
je 0x40a3fd
lea esi, [esi]
lea edi, [edi]
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x30]
inc dword [esp + 0x40]
and ebx, ecx
cmp ebx, dword [esp + 0x38]
je 0x40a3cb
mov eax, dword [esp + 0x44]
mov dword [eax + ebx*4], esi
nop
movzx ebx, byte [esi]
inc esi
cmp bl, 0xa
jne 0x40a1f0
cmp esi, ebp
jne 0x40a1d0
mov ebp, dword [esp + 0x60]
mov eax, dword [ebp + 0x138]
mov ebx, dword [esp + 0x34]
test ebx, ebx
je 0x40a3bc
mov ecx, dword [0x425710]
mov ebx, dword [esp + 0x40]
mov ebp, ecx
mov dword [esp + 0x18], ecx
cmp ecx, ebx
jl 0x40a22b
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x14], 0x20
mov ecx, dword [esp + 0x20]
mov ebx, esi
sub ebx, ecx
mov ecx, edi
sub ecx, eax
cmp dword [esp + 0x40], 9
jle 0x40a25b
mov edx, dword [esp + 0x40]
mov eax, ebx
dec edx
mov dword [esp + 0x10], edx
xor edx, edx
div dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov eax, ecx
xor edx, edx
div dword [esp + 0x14]
cmp eax, 1
mov ecx, eax
jae 0x40a26f
mov ecx, 1
cmp ecx, 0xe38e389
mov eax, ecx
jbe 0x40a27e
mov eax, 0xe38e389
mov edx, esi
mov ecx, dword [esp + 0x28]
lea ebx, [eax + 5]
mov esi, dword [esp + 0x20]
sub ecx, edi
sub edx, esi
cmp dword [esp + 0x40], 9
mov esi, 0x20
jle 0x40a2a8
mov edi, dword [esp + 0x40]
mov eax, edx
xor edx, edx
dec edi
div edi
mov esi, eax
mov eax, ecx
xor edx, edx
div esi
cmp eax, 1
mov ecx, eax
jae 0x40a2ba
mov ecx, 1
cmp ecx, 0xe38e389
mov eax, ecx
jbe 0x40a2c9
mov eax, 0xe38e389
lea edx, [eax + 5]
mov eax, dword [esp + 0x18]
lea ecx, [ebx + ebp]
cmp eax, edx
jle 0x40a2d9
mov eax, edx
lea ebx, [eax + ecx]
cmp ebx, ebp
jl 0x40a2e8
cmp ebx, 0x1ffffffe
jbe 0x40a2ed
call fcn.0040cc00
lea ecx, [ebx*4]
mov dword [esp], ecx
call fcn.0040ccd0
cmp ebp, dword [esp + 0x40]
mov ecx, eax
je 0x40a343
xor edx, edx
cmp edx, ebp
jge 0x40a364
mov esi, dword [esp + 0x40]
mov edi, dword [0x425710]
sub esi, edi
mov edi, dword [esp + 0x30]
lea eax, [edx + esi]
and eax, edi
mov edi, dword [esp + 0x44]
mov eax, dword [edi + eax*4]
mov dword [ecx + edx*4], eax
inc edx
cmp edx, ebp
jl 0x40a316
xor edx, edx
cmp edx, ebp
jge 0x40a364
mov esi, dword [ecx + edx*4]
mov edi, dword [esp + 0x44]
mov dword [edi + edx*4], esi
inc edx
cmp edx, ebp
jl 0x40a334
xor edx, edx
cmp edx, ebp
jge 0x40a364
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
mov eax, dword [esi + edx*4]
mov esi, dword [esp + 0x20]
sub eax, esi
add eax, edi
mov dword [ecx + edx*4], eax
inc edx
cmp edx, ebp
jl 0x40a349
sub dword [esp + 0x38], ebp
lea eax, [ebp*4]
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x60]
sub ebx, ebp
mov edx, ebp
neg edx
add edi, eax
mov dword [esi + 0x74], edi
lea edi, [eax + ecx]
mov eax, dword [esp + 0x38]
mov dword [esi + 0x134], ebx
mov ebx, dword [esp + 0x40]
mov dword [esi + 0x124], edi
mov dword [esi + 0x128], edx
mov dword [esi + 0x78], edx
mov dword [esi + 0x84], eax
mov dword [esi + 0x13c], ebx
mov dword [esi + 0x8c], ebx
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebp, dword [0x425710]
mov dword [esp + 0x18], ebp
jmp 0x40a227
cmp dword [esp + 0x38], 0xffffffe
ja 0x40a2e8
shl dword [esp + 0x38], 1
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
mov dword [esp], edx
shl ecx, 2
mov dword [esp + 4], ecx
call fcn.0040cdc0
mov dword [esp + 0x44], eax
jmp 0x40a1e8
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 0x138]
jmp 0x40a207
mov eax, dword [eax + 0x138]
cmp eax, edi
jne 0x40a1b8
jmp 0x40a207
mov edx, dword [esp + 0x60]
mov ebp, dword [edx + 0x88]
jmp 0x40a1b8
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x1c]
shr eax, 5
cmp eax, 1
jae 0x40a448
mov eax, 1
cmp eax, 0xe38e389
jbe 0x40a454
mov eax, 0xe38e389
add eax, 5
mov dword [esp + 0x38], eax
jmp 0x40a171
mov edx, dword [esp + 0x60]
mov ebx, esi
mov ecx, dword [edx + 0x88]
mov edx, dword [esp + 0x3c]
cmp dword [esp + 0x1c], edx
jb 0x40a47e
mov eax, dword [esp + 0x1c]
sub eax, edx
add ecx, eax
cmp esi, ecx
je 0x40a48b
movzx edx, byte [edi]
cmp byte [esi], dl
je 0x40a4db
mov ecx, esi
xor edx, edx
cmp dword [esp + 0x20], esi
je 0x40a4cd
cmp byte [esi - 1], 0xa
je 0x40a4cd
mov edx, 1
mov eax, dword [esp + 0x24]
lea edx, [edx + eax - 1]
cmp edx, 0xffffffff
je 0x40a4c2
cmp esi, ebx
je 0x40a4c2
nop
movzx eax, byte [esi]
inc esi
cmp al, 0xa
jne 0x40a4b0
dec edx
cmp edx, 0xffffffff
je 0x40a4c2
cmp esi, ebx
jne 0x40a4b0
mov ebx, esi
sub ebx, ecx
add edi, ebx
jmp 0x40a09d
cmp dword [esp + 0x48], edi
je 0x40a49e
cmp byte [edi - 1], 0xa
jne 0x40a499
jmp 0x40a49e
dec esi
dec edi
jmp 0x40a47e
dec edx
cmp edx, 0xffffffff
jne 0x40a050
jmp 0x40a064
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
lea ebp, [ebx + edx]
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x3c]
add edx, ebx
mov dword [esp + 0x28], edx
jmp 0x40a035
inc edi
inc esi
movzx ecx, byte [edi]
cmp byte [esi], cl
je 0x40a50e
jmp 0x409fd9
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
movzx ebx, byte [edx + eax]
not bl
mov byte [edx + ecx], bl
mov esi, dword [esp + 0x20]
mov ecx, dword [esi]
mov ebx, dword [esi + 4]
mov esi, dword [esp + 0x48]
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x409fb9
mov edx, dword [esp + 0x48]
add edi, esi
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x28], edi
mov ecx, dword [0x425870]
mov esi, edi
lea ebp, [ebx + edx]
jmp 0x40a035
mov dword [esp + 8], esi
mov dword [esp + 4], 0xd
mov dword [esp], ebx
call sub.msvcrt.dll_memchr
test eax, eax
mov ecx, eax
je 0x409f4e
mov edx, eax
lea ebp, [esi + ebx]
movzx eax, byte [edx]
xor ebx, ebx
inc edx
mov byte [ecx], al
cmp al, 0xd
je 0x40a5a9
mov ebx, 1
add ecx, ebx
cmp edx, ebp
jb 0x40a589
sub edx, ecx
sub esi, edx
jmp 0x409f4e
cmp byte [edx], 0xa
jne 0x40a595
jmp 0x40a59a
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x60]
mov ecx, dword [esi + 0x68]
mov ebx, dword [edx + 0x70]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], ebx
jmp 0x409f67
mov byte [edi + 0xa8], 0
jmp 0x409f2c
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x60]
mov esi, dword [ecx + 0x70]
movzx edx, byte [ecx + 0xa8]
mov eax, dword [edi + 0x68]
mov ebp, dword [ecx + 0x6c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], eax
mov dword [ecx + 0x118], eax
mov dword [ecx + 0x11c], ebp
mov dword [ecx + 0x120], esi
mov byte [ecx + 0x158], dl
jmp 0x409f67
mov dword [esp + 8], esi
mov dword [esp + 4], 0xd
mov dword [esp], ebx
call sub.msvcrt.dll_memchr
test eax, eax
mov ecx, eax
je 0x409ede
mov edx, eax
lea edi, [esi + ebx]
movzx eax, byte [edx]
xor ebx, ebx
inc edx
mov byte [ecx], al
cmp al, 0xd
je 0x40a657
mov ebx, 1
add ecx, ebx
cmp edx, edi
jb 0x40a637
sub edx, ecx
sub esi, edx
jmp 0x409ede
cmp byte [edx], 0xa
jne 0x40a643
jmp 0x40a648
mov eax, dword [esp + 0x60]
mov byte [eax + 0xa8], 0
jmp 0x409ec0