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

Disassembly:
sub esp, 0x4b4
mov dl, byte [0x4edd18]
push ebx
push ebp
push esi
push edi
mov ecx, 0x63
xor eax, eax
lea edi, [esp + 0x335]
mov byte [esp + 0x334], dl
mov byte [esp + 0xdc], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x95
xor eax, eax
lea edi, [esp + 0xdd]
rep stosd dword es:[edi], eax
mov ecx, dword [0x4a6610]
mov dword [esp + 0x18], ecx
xor ecx, ecx
mov dword [esp + 0x1e], ecx
mov dword [esp + 0x22], ecx
mov word [esp + 0x26], cx
mov ecx, dword [0x4a6604]
mov dword [esp + 0x2c], ecx
xor ecx, ecx
mov dword [esp + 0x32], ecx
stosw word es:[edi], ax
mov dword [esp + 0x36], ecx
mov word [esp + 0x3a], cx
mov ecx, dword [0x4a65f8]
stosb byte es:[edi], al
mov eax, dword [str._WARNING_]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x14], eax
mov ax, word [0x4a6614]
xor ecx, ecx
mov word [esp + 0x1c], ax
mov eax, dword [str.__ERROR_]
mov dword [esp + 0x46], ecx
mov dword [esp + 0x4a], ecx
mov dword [esp + 0x28], eax
mov ax, word [0x4a6608]
mov word [esp + 0x4e], cx
mov ecx, dword [0x4a65ec]
mov word [esp + 0x30], ax
mov eax, dword [str.___OK_]
mov dword [esp + 0x54], ecx
xor ecx, ecx
mov dword [esp + 0x3c], eax
mov ax, word [0x4a65fc]
mov dword [esp + 0x5a], ecx
mov dword [esp + 0x5e], ecx
mov word [esp + 0x44], ax
mov eax, dword [str.__EXIT_]
mov word [esp + 0x62], cx
mov ecx, dword [0x4a65e0]
mov dword [esp + 0x50], eax
mov ax, word [0x4a65f0]
mov dword [esp + 0x68], ecx
xor ecx, ecx
mov word [esp + 0x58], ax
mov eax, dword [str._EXIT_NM_]
mov dword [esp + 0x6e], ecx
mov dword [esp + 0x64], eax
mov ax, word [0x4a65e4]
mov dword [esp + 0x72], ecx
mov word [esp + 0x6c], ax
mov eax, dword [str.__POPUP_]
mov word [esp + 0x76], cx
mov ecx, dword [0x4a65d4]
mov dword [esp + 0x78], eax
mov ax, word [0x4a65d8]
mov dword [esp + 0x7c], ecx
xor ecx, ecx
mov word [esp + 0x80], ax
mov eax, dword [0x4a65cc]
mov dword [esp + 0x82], ecx
mov dword [esp + 0x86], ecx
mov dword [esp + 0x8c], eax
mov word [esp + 0x8a], cx
mov eax, dword [0x4a65c0]
mov dword [esp + 0x90], ecx
mov byte [esp + 0xa0], dl
xor edx, edx
mov dword [esp + 0x94], ecx
mov dword [esp + 0xa1], edx
mov dword [esp + 0x98], ecx
mov dword [esp + 0xa5], edx
mov dword [esp + 0xb4], eax
mov dword [esp + 0x9c], ecx
mov ecx, dword [0x4a65c4]
xor eax, eax
mov dword [esp + 0xa9], edx
mov dword [esp + 0xbe], eax
mov dword [esp + 0xad], edx
mov dword [esp + 0xb8], ecx
mov ecx, dword [0x4a65b4]
mov dword [esp + 0xc2], eax
mov word [esp + 0xb1], dx
mov ebp, dword [esp + 0x4c8]
mov word [esp + 0xc6], ax
mov ax, word [0x4a65bc]
mov dword [esp + 0xc8], ecx
mov byte [esp + 0xb3], dl
mov dx, word [0x4a65c8]
xor ecx, ecx
mov word [esp + 0xd0], ax
mov al, byte [0x4edd01]
mov dword [esp + 0xd2], ecx
mov word [esp + 0xbc], dx
mov edx, dword [0x4a65b8]
mov dword [esp + 0xd6], ecx
test al, al
mov dword [esp + 0xcc], edx
mov word [esp + 0xda], cx
jne 0x40199d
mov dl, byte [ebp + 0x258]
mov al, byte [0x477282]
cmp dl, al
je 0x401ce8
mov al, byte [0x4edd00]
test al, al
jne 0x4019c6
mov al, byte [ebp + 0x258]
mov cl, byte [0x477288]
cmp al, cl
je 0x401ce8
cmp al, byte [0x477289]
je 0x401ce8
mov al, byte [0x4a649c]
test al, al
jne 0x4019e3
mov al, byte [ebp + 0x258]
mov cl, byte [0x477286]
cmp al, cl
je 0x401ce8
mov bl, byte [ebp + 0x258]
mov al, byte [0x477289]
mov edx, dword [0x4edd0c]
cmp bl, al
je 0x401a51
mov al, byte [ebp + 0x259]
test al, al
je 0x401ce8
test edx, edx
jle 0x401a51
mov dword [esp + 0x10], edx
mov edi, 0x4a65b0
or ecx, 0xffffffff
xor eax, eax
lea ebp, [esp + 0x334]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, ebp
mov ebp, ecx
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 eax, dword [esp + 0x10]
mov ecx, ebp
and ecx, 3
dec eax
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x10], eax
jne 0x401a0e
mov ebp, dword [esp + 0x4c8]
cmp bl, byte [0x477288]
jne 0x401ace
lea eax, [edx + edx*4]
lea ebx, [ebp + 0x25b]
mov edi, ebx
lea ecx, [eax + eax*4]
xor eax, eax
lea esi, [ecx*4 + 0x4ec954]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x10], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
inc edx
rep movsb byte es:[edi], byte [esi]
mov cl, byte [ebp + 0x259]
cmp edx, 0x1e
mov byte [edx + 0x4edcdb], cl
mov dword [0x4edd0c], edx
jl 0x401ab3
mov dword [0x4edd0c], 0
push ebx
lea edx, [esp + 0xe0]
push str.___s
push edx
call fcn.0046ae25
add esp, 0xc
jmp 0x401baf
cmp bl, byte [0x477289]
jne 0x401bf0
test edx, edx
jle 0x401baf
lea edi, [edx - 1]
or ebp, 0xffffffff
test edi, edi
jl 0x401ba8
mov eax, dword [esp + 0x4c8]
lea edx, [eax + 0x25b]
lea eax, [edi + edi*4]
mov esi, edx
lea ecx, [eax + eax*4]
lea eax, [ecx*4 + 0x4ec954]
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x401b30
test cl, cl
je 0x401b2c
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x401b30
add eax, 2
add esi, 2
test cl, cl
jne 0x401b0c
xor eax, eax
jmp 0x401b35
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x401b3e
mov ebp, edi
or edi, 0xffffffff
dec edi
jns 0x401afd
test ebp, ebp
jl 0x401ba8
mov al, byte [ebp + 0x4edcdc]
mov dword [0x4edd0c], ebp
test al, al
je 0x401ce8
test ebp, ebp
jle 0x401b93
mov edx, ebp
mov edi, 0x4a65b0
or ecx, 0xffffffff
xor eax, eax
lea ebx, [esp + 0x334]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, ebx
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
dec edx
rep movsb byte es:[edi], byte [esi]
jne 0x401b5f
lea edx, [esp + 0xdc]
push str.________________
push edx
call fcn.0046ae25
add esp, 8
mov ebp, dword [esp + 0x4c8]
lea edi, [esp + 0xdc]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x401ce8
mov cl, byte [ebp + 0x258]
mov al, byte [0x477287]
cmp cl, al
jne 0x401c54
lea edx, [esp + 0xdc]
push edx
push 0x4a64c0
push ebp
call fcn.0046ae25
add esp, 0xc
jmp 0x401c72
mov eax, dword [esp + 0x4cc]
test eax, eax
je 0x401c2f
mov cl, byte [0x477287]
push eax
cmp bl, cl
jne 0x401c0d
push 0x4a64c0
jmp 0x401c3f
movsx eax, bl
lea ecx, [eax + eax*4]
lea eax, [esp + 0xe0]
lea edx, [esp + ecx*4 + 0x18]
push edx
push 0x4a658c
push eax
call fcn.0046ae25
add esp, 0x10
jmp 0x401baf
movsx eax, bl
lea ecx, [eax + eax*4]
lea edx, [esp + ecx*4 + 0x14]
push edx
push str._s__no_message_
lea eax, [esp + 0xe4]
push eax
call fcn.0046ae25
add esp, 0xc
jmp 0x401baf
lea eax, [esp + 0xdc]
lea ecx, [esp + 0x334]
push eax
push ecx
push 0x4a6574
push ebp
call fcn.0046ae25
add esp, 0x10
mov eax, dword [0x4edd08]
inc eax
cmp eax, 0x3e8
mov dword [0x4edd08], eax
jl 0x401ce8
mov ecx, 5
mov esi, str.MESSAGE_LOG_OVERFLOWED
mov edi, 0x2907960
mov al, byte [0x477282]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov ecx, 5
mov esi, str.______________________
mov edi, 0x2907bed
mov byte [0x2907bb8], al
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov ecx, 5
mov esi, 0x4a652c
mov edi, 0x2907e7a
mov byte [0x2907e45], al
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov byte [0x29080d2], al
mov dword [0x4edd08], 3
mov dword [0x4edd10], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4b4
ret