Function at 0x4070f0
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x41c071
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x43c
mov eax, dword [0x423590]
mov ecx, dword [0x42358c]
mov dword [esp + 0x30], eax
mov al, byte [0x42358a]
mov dword [esp + 0x24], ecx
mov cx, word [0x423584]
mov byte [esp + 0x1a], al
mov ax, word [0x423580]
mov word [esp + 0x20], cx
mov cl, byte [0x423582]
mov word [esp + 0x1c], ax
mov al, byte [0x42357e]
mov byte [esp + 0x1e], cl
mov cx, word [0x423578]
mov byte [esp + 0xa], al
mov ax, word [0x423574]
mov word [esp + 0x14], cx
mov cl, byte [0x423576]
mov word [esp + 0x10], ax
mov al, byte [0x423572]
push ebx
mov byte [esp + 0x16], cl
mov cx, word [0x42356c]
mov byte [esp + 0xa], al
mov eax, dword [0x423568]
push ebp
mov dx, word [0x423588]
push esi
push edi
mov word [esp + 0x1c], cx
mov dword [esp + 0x3c], eax
mov esi, dword [esp + 0x45c]
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x4c]
mov word [esp + 0x28], dx
mov dl, byte [0x423586]
xor ebp, ebp
rep stosd dword es:[edi], eax
mov edi, esi
or ecx, 0xffffffff
mov byte [esp + 0x32], dl
mov dx, word [0x42357c]
repne scasb al, byte es:[edi]
mov word [esp + 0x18], dx
mov dl, byte [0x42357a]
mov ebx, dword [sym.imp.MSVCRT.dll_tolower]
mov byte [esp + 0x26], dl
mov dx, word [0x423570]
mov dword [esp + 0x10], esi
mov word [esp + 0x14], dx
mov dl, byte [0x42356e]
not ecx
dec ecx
mov byte [esp + 0x1e], dl
je 0x407248
test ebp, ebp
jne 0x40720e
cmp byte [esi], 0x22
jne 0x40720e
mov byte [esi], 0x20
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
add ecx, 0xfffffffe
cmp ebp, ecx
jne 0x40722a
cmp byte [esi + ebp], 0x22
jne 0x40722a
mov byte [esi + ebp], 0x20
movsx ecx, byte [esi + ebp]
push ecx
call ebx
mov byte [esi + ebp], al
add esp, 4
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
inc ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ebp, ecx
jb 0x407202
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x407370
call sub.MFC42.DLL_AfxGetModuleState
mov esi, dword [eax + 0x10]
lea edx, [esp + 0x48]
push edx
call fcn.00408120
add esp, 4
push esi
push eax
lea eax, [esp + 0x40]
mov dword [esp + 0x45c], 0
push eax
call sub.MFC42.DLL_operator_2
push str..txt
lea ecx, [esp + 0x48]
push eax
push ecx
mov byte [esp + 0x460], 1
call sub.MFC42.DLL_operator_2
mov eax, dword [eax]
push 0x42355c
push eax
call dword [sym.imp.MSVCRT.dll_fopen]
add esp, 8
lea ecx, [esp + 0x44]
mov esi, eax
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x38]
mov byte [esp + 0x454], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x48]
mov dword [esp + 0x454], 0xffffffff
call sub.MFC42.DLL_CString::CString
test esi, esi
je 0x407370
push esi
push 0x400
lea edx, [esp + 0x54]
push 1
push edx
call dword [sym.imp.MSVCRT.dll_fread]
push esi
call dword [sym.imp.MSVCRT.dll_fclose]
lea eax, [esp + 0x60]
lea edi, [esp + 0x60]
mov dword [esp + 0x24], eax
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
xor esi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x407370
test esi, esi
jne 0x40732e
cmp byte [esp + 0x4c], 0x22
jne 0x40732e
mov byte [esp + 0x4c], 0x20
lea edi, [esp + 0x4c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
add ecx, 0xfffffffe
cmp esi, ecx
jne 0x40734e
cmp byte [esp + esi + 0x4c], 0x22
jne 0x40734e
mov byte [esp + esi + 0x4c], 0x20
movsx ecx, byte [esp + esi + 0x4c]
push ecx
call ebx
mov byte [esp + esi + 0x50], al
add esp, 4
lea edi, [esp + 0x4c]
or ecx, 0xffffffff
xor eax, eax
inc esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp esi, ecx
jb 0x40731e
mov edi, dword [esp + 0x10]
or ecx, 0xffffffff
xor eax, eax
xor esi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x408082
mov ebx, dword [sym.imp.MSVCRT.dll_strncmp]
mov edx, dword [esp + 0x10]
mov al, byte [esi + edx]
lea ebp, [esi + edx]
cmp al, 0x20
je 0x40806b
lea edi, [esp + 0x40]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x40]
push ecx
push eax
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x40765f
lea edi, [esp + 0x40]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edx, dword [esp + 0x10]
not ecx
dec ecx
add ecx, esi
mov dword [esp + 0x38], ecx
mov al, byte [ecx + edx]
cmp al, 0x20
jne 0x4073ee
test al, al
je 0x4073ea
mov al, byte [ecx + edx + 1]
inc ecx
cmp al, 0x20
je 0x4073dd
mov dword [esp + 0x38], ecx
mov al, byte [ecx + edx]
lea ebp, [ecx + edx]
test al, al
mov esi, ecx
mov dword [esp + 0x44], ebp
je 0x407634
lea edi, [esp + 0x28]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x2c]
push ecx
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x407439
test esi, esi
je 0x407634
jle 0x407439
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x407629
lea edi, [esp + 0x18]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x18]
push ecx
push eax
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x407470
test esi, esi
je 0x407634
jle 0x407470
mov ecx, dword [esp + 0x10]
cmp byte [esi + ecx - 1], 0x20
je 0x407629
lea edi, [esp + 0x2c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x2c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x4074a7
test esi, esi
je 0x407634
jle 0x4074a7
mov eax, dword [esp + 0x10]
cmp byte [esi + eax - 1], 0x20
je 0x407629
lea edi, [esp + 0x34]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x38]
push ecx
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x4074de
test esi, esi
je 0x407634
jle 0x4074de
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x407629
lea edi, [esp + 0x30]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x30]
push ecx
push eax
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x407515
test esi, esi
je 0x407634
jle 0x407515
mov ecx, dword [esp + 0x10]
cmp byte [esi + ecx - 1], 0x20
je 0x407629
lea edi, [esp + 0x24]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x24]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x40754c
test esi, esi
je 0x407634
jle 0x40754c
mov eax, dword [esp + 0x10]
cmp byte [esi + eax - 1], 0x20
je 0x407629
lea edi, [esp + 0x1c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x20]
push ecx
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x407583
test esi, esi
je 0x407634
jle 0x407583
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x407629
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x20]
push ecx
push eax
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x4075b6
test esi, esi
je 0x407634
jle 0x4075b6
mov ecx, dword [esp + 0x10]
cmp byte [esi + ecx - 1], 0x20
je 0x407629
lea edi, [esp + 0x14]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x14]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x4075e5
test esi, esi
je 0x407634
jle 0x4075e5
mov eax, dword [esp + 0x10]
cmp byte [esi + eax - 1], 0x20
je 0x407629
lea edi, [esp + 0x3c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x40]
push ecx
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x407614
test esi, esi
je 0x407634
jle 0x407614
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x40762f
mov eax, dword [esp + 0x10]
inc esi
lea ebp, [esi + eax]
mov al, byte [esi + eax]
test al, al
jne 0x407402
jmp 0x407634
test esi, esi
jle 0x407634
jmp 0x407633
test esi, esi
jle 0x407634
dec esi
mov ecx, dword [esp + 0x38]
mov ebp, esi
sub ebp, ecx
test ebp, ebp
jle 0x40806b
lea ecx, [ebp + 1]
push ecx
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
test edi, edi
je 0x40806b
jmp 0x408039
lea edi, [esp + 0x28]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x2c]
push ecx
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x40769a
lea edi, [esp + 0x28]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edx, dword [esp + 0x468]
not ecx
dec ecx
mov byte [edx], 1
add esi, ecx
jmp 0x40806b
lea edi, [esp + 0x30]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x30]
push ecx
push eax
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x4076d5
mov ecx, dword [esp + 0x46c]
lea edi, [esp + 0x30]
mov byte [ecx], 1
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
jmp 0x40806b
lea edi, [esp + 0x2c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x2c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x407712
mov eax, dword [esp + 0x474]
lea edi, [esp + 0x2c]
or ecx, 0xffffffff
mov byte [eax], 1
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
jmp 0x40806b
lea edi, [esp + 0x18]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x1c]
push ecx
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x40774d
lea edi, [esp + 0x18]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edx, dword [esp + 0x470]
not ecx
dec ecx
mov byte [edx], 1
add esi, ecx
jmp 0x40806b
lea edi, [esp + 0x24]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x24]
push ecx
push eax
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x407788
mov ecx, dword [esp + 0x478]
lea edi, [esp + 0x24]
mov byte [ecx], 1
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
jmp 0x40806b
lea edi, [esp + 0x1c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x4077c5
mov eax, dword [esp + 0x484]
lea edi, [esp + 0x1c]
or ecx, 0xffffffff
mov byte [eax], 1
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
jmp 0x40806b
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x24]
push ecx
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x407800
lea edi, [esp + 0x20]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edx, dword [esp + 0x47c]
not ecx
dec ecx
mov byte [edx], 1
add esi, ecx
jmp 0x40806b
lea edi, [esp + 0x14]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x14]
push ecx
push eax
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x40783b
mov ecx, dword [esp + 0x480]
lea edi, [esp + 0x14]
mov byte [ecx], 1
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
jmp 0x40806b
lea edi, [esp + 0x34]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x34]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x407a9e
lea edi, [esp + 0x34]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
mov ecx, dword [esp + 0x10]
add ebx, esi
mov al, byte [ebx + ecx]
cmp al, 0x20
jne 0x407885
test al, al
je 0x407885
mov al, byte [ebx + ecx + 1]
inc ebx
cmp al, 0x20
je 0x407878
lea eax, [ebx + ecx]
mov ebp, ebx
cmp byte [eax], 0
je 0x407a46
mov eax, dword [esp + 0x10]
lea esi, [ebx + eax]
lea edi, [esp + 0x40]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x44]
push ecx
push esi
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x407a3b
lea edi, [esp + 0x28]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x28]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push esi
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x407a3b
lea edi, [esp + 0x18]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x18]
push ecx
push eax
push esi
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x407a3b
lea edi, [esp + 0x34]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x38]
push ecx
push esi
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x407a3b
lea edi, [esp + 0x30]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x30]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push esi
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x407a3b
lea edi, [esp + 0x2c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x2c]
push ecx
push eax
push esi
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x407a3b
lea edi, [esp + 0x24]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x28]
push ecx
push esi
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x407a3b
lea edi, [esp + 0x1c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push esi
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x407a3b
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x20]
push ecx
push eax
push esi
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x407a3b
lea edi, [esp + 0x14]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x18]
push ecx
push esi
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x407a3b
lea edi, [esp + 0x3c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x3c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push esi
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x407a41
mov al, byte [esi + 1]
inc ebp
inc esi
test al, al
jne 0x40789a
jmp 0x407a46
test ebp, ebp
jle 0x407a46
jmp 0x407a45
test ebp, ebp
jle 0x407a46
dec ebp
mov edi, ebp
sub edi, ebx
test edi, edi
jle 0x407a91
lea eax, [edi + 1]
push eax
call sub.MFC42.DLL_operatornew
mov esi, eax
add esp, 4
test esi, esi
je 0x407a91
mov ecx, dword [esp + 0x10]
push edi
lea eax, [ebx + ecx]
push eax
push esi
call dword [sym.imp.MSVCRT.dll_strncpy]
mov ecx, dword [esp + 0x470]
mov edx, esi
add esp, 0xc
sub edx, ebx
push esi
mov byte [edx + ebp], 0
call sub.MFC42.DLL_CString::operator_1
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ebx, dword [sym.imp.MSVCRT.dll_strncmp]
mov esi, ebp
jmp 0x40806b
lea edi, [esp + 0x3c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x3c]
push ecx
push eax
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x407da8
lea edi, [esp + 0x3c]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
mov ecx, dword [esp + 0x10]
add ebx, esi
mov al, byte [ebx + ecx]
cmp al, 0x20
jne 0x407ae8
test al, al
je 0x407ae8
mov al, byte [ebx + ecx + 1]
inc ebx
cmp al, 0x20
je 0x407adb
mov al, byte [ebx + ecx]
lea ebp, [ebx + ecx]
test al, al
mov esi, ebx
je 0x407d52
lea edi, [esp + 0x40]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x44]
push ecx
push ebp
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x407b33
test esi, esi
je 0x407d52
jle 0x407b33
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x407d47
lea edi, [esp + 0x28]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x28]
push ecx
push eax
push ebp
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x407b6e
test esi, esi
je 0x407d52
jle 0x407b6e
mov ecx, dword [esp + 0x10]
cmp byte [esi + ecx - 1], 0x20
je 0x407d47
lea edi, [esp + 0x18]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x18]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push ebp
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x407ba9
test esi, esi
je 0x407d52
jle 0x407ba9
mov eax, dword [esp + 0x10]
cmp byte [esi + eax - 1], 0x20
je 0x407d47
lea edi, [esp + 0x34]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x38]
push ecx
push ebp
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x407be4
test esi, esi
je 0x407d52
jle 0x407be4
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x407d47
lea edi, [esp + 0x30]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x30]
push ecx
push eax
push ebp
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x407c1f
test esi, esi
je 0x407d52
jle 0x407c1f
mov ecx, dword [esp + 0x10]
cmp byte [esi + ecx - 1], 0x20
je 0x407d47
lea edi, [esp + 0x2c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x2c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push ebp
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x407c5a
test esi, esi
je 0x407d52
jle 0x407c5a
mov eax, dword [esp + 0x10]
cmp byte [esi + eax - 1], 0x20
je 0x407d47
lea edi, [esp + 0x24]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x28]
push ecx
push ebp
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x407c95
test esi, esi
je 0x407d52
jle 0x407c95
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x407d47
lea edi, [esp + 0x1c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x1c]
push ecx
push eax
push ebp
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x407ccc
test esi, esi
je 0x407d52
jle 0x407ccc
mov ecx, dword [esp + 0x10]
cmp byte [esi + ecx - 1], 0x20
je 0x407d47
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x20]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push ebp
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x407cff
test esi, esi
je 0x407d52
jle 0x407cff
mov eax, dword [esp + 0x10]
cmp byte [esi + eax - 1], 0x20
je 0x407d47
lea edi, [esp + 0x14]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x18]
push ecx
push ebp
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x407d32
test esi, esi
je 0x407d52
jle 0x407d32
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x407d4d
mov eax, dword [esp + 0x10]
inc esi
lea ebp, [esi + eax]
mov al, byte [esi + eax]
test al, al
jne 0x407af8
jmp 0x407d52
test esi, esi
jle 0x407d52
jmp 0x407d51
test esi, esi
jle 0x407d52
dec esi
mov ebp, esi
sub ebp, ebx
test ebp, ebp
jle 0x407d9d
lea ecx, [ebp + 1]
push ecx
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
test edi, edi
je 0x407d9d
mov edx, dword [esp + 0x10]
push ebp
lea eax, [ebx + edx]
push eax
push edi
call dword [sym.imp.MSVCRT.dll_strncpy]
mov ecx, dword [esp + 0x494]
mov eax, edi
add esp, 0xc
sub eax, ebx
push edi
mov byte [eax + esi], 0
call sub.MFC42.DLL_CString::operator_1
push edi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ebx, dword [sym.imp.MSVCRT.dll_strncmp]
jmp 0x40806b
mov al, byte [ebp]
mov dword [esp + 0x38], esi
cmp al, 0x20
jne 0x408007
mov ecx, dword [esp + 0x10]
mov al, 0x20
test al, al
je 0x407dca
mov al, byte [esi + ecx + 1]
inc esi
cmp al, 0x20
je 0x407dbd
mov dword [esp + 0x38], esi
mov al, byte [esi + ecx]
lea ebp, [esi + ecx]
test al, al
mov dword [esp + 0x44], ebp
je 0x40801b
lea edi, [esp + 0x28]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x2c]
push ecx
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x407e17
test esi, esi
je 0x40801b
jle 0x407e17
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x408010
lea edi, [esp + 0x18]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x18]
push ecx
push eax
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x407e4e
test esi, esi
je 0x40801b
jle 0x407e4e
mov ecx, dword [esp + 0x10]
cmp byte [esi + ecx - 1], 0x20
je 0x408010
lea edi, [esp + 0x34]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x34]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x407e85
test esi, esi
je 0x40801b
jle 0x407e85
mov eax, dword [esp + 0x10]
cmp byte [esi + eax - 1], 0x20
je 0x408010
lea edi, [esp + 0x30]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x34]
push ecx
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x407ebc
test esi, esi
je 0x40801b
jle 0x407ebc
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x408010
lea edi, [esp + 0x2c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x2c]
push ecx
push eax
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x407ef3
test esi, esi
je 0x40801b
jle 0x407ef3
mov ecx, dword [esp + 0x10]
cmp byte [esi + ecx - 1], 0x20
je 0x408010
lea edi, [esp + 0x24]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x24]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x407f2a
test esi, esi
je 0x40801b
jle 0x407f2a
mov eax, dword [esp + 0x10]
cmp byte [esi + eax - 1], 0x20
je 0x408010
lea edi, [esp + 0x1c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x20]
push ecx
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x407f61
test esi, esi
je 0x40801b
jle 0x407f61
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x408010
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x20]
push ecx
push eax
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x407f94
test esi, esi
je 0x40801b
jle 0x407f94
mov ecx, dword [esp + 0x10]
cmp byte [esi + ecx - 1], 0x20
je 0x408010
lea edi, [esp + 0x14]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x14]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x407fc3
test esi, esi
je 0x40801b
jle 0x407fc3
mov eax, dword [esp + 0x10]
cmp byte [esi + eax - 1], 0x20
je 0x408010
lea edi, [esp + 0x3c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x40]
push ecx
push ebp
call ebx
add esp, 0xc
test eax, eax
jne 0x407ff2
test esi, esi
je 0x40801b
jle 0x407ff2
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x408016
mov eax, dword [esp + 0x10]
inc esi
lea ebp, [esi + eax]
mov al, byte [esi + eax]
test al, al
jne 0x407de0
jmp 0x40801b
mov ecx, dword [esp + 0x10]
jmp 0x407dce
test esi, esi
jle 0x40801b
jmp 0x40801a
test esi, esi
jle 0x40801b
dec esi
mov ecx, dword [esp + 0x38]
mov ebp, esi
sub ebp, ecx
test ebp, ebp
jle 0x40806b
lea ecx, [ebp + 1]
push ecx
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
test edi, edi
je 0x40806b
mov edx, dword [esp + 0x44]
push ebp
push edx
push edi
call dword [sym.imp.MSVCRT.dll_strncpy]
mov ebp, dword [esp + 0x44]
mov ecx, dword [esp + 0x46c]
mov eax, edi
add esp, 0xc
sub eax, ebp
push edi
mov byte [eax + esi], 0
call sub.MFC42.DLL_CString::operator_1
push edi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov edi, dword [esp + 0x10]
or ecx, 0xffffffff
xor eax, eax
inc esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp esi, ecx
jb 0x40738c
mov esi, dword [esp + 0x460]
mov ecx, esi
call sub.MFC42.DLL_CString::TrimRight
lea ecx, [esp + 0x48]
push 1
push ecx
mov ecx, esi
call sub.MFC42.DLL_CString::Right
mov eax, dword [eax]
push 0x423558
push eax
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
lea ecx, [esp + 0x48]
test eax, eax
sete bl
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x4080fb
mov edx, dword [esi]
mov ecx, esi
mov eax, dword [edx - 8]
dec eax
push eax
lea eax, [esp + 0x14]
push eax
call sub.MFC42.DLL_CString::Left
push eax
mov ecx, esi
mov dword [esp + 0x458], 2
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x10]
mov dword [esp + 0x454], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x44c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x448
ret