Function at 0x4067d0
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x417bc1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x43c
mov eax, dword [0x41e520]
mov ecx, dword [0x41e51c]
mov dword [esp + 0x30], eax
mov al, byte [0x41e51a]
mov dword [esp + 0x24], ecx
mov cx, word [0x41e514]
mov byte [esp + 0x1a], al
mov ax, word [0x41e510]
mov word [esp + 0x20], cx
mov cl, byte [0x41e512]
mov word [esp + 0x1c], ax
mov al, byte [0x41e50e]
mov byte [esp + 0x1e], cl
mov cx, word [0x41e508]
mov byte [esp + 0xa], al
mov ax, word [0x41e504]
mov word [esp + 0x14], cx
mov cl, byte [0x41e506]
mov word [esp + 0x10], ax
mov al, byte [0x41e502]
push ebx
mov byte [esp + 0x16], cl
mov cx, word [0x41e4fc]
mov byte [esp + 0xa], al
mov eax, dword [0x41e4f8]
push ebp
mov dx, word [0x41e518]
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 [0x41e516]
xor ebp, ebp
rep stosd dword es:[edi], eax
mov edi, esi
or ecx, 0xffffffff
mov byte [esp + 0x32], dl
mov dx, word [0x41e50c]
repne scasb al, byte es:[edi]
mov word [esp + 0x18], dx
mov dl, byte [0x41e50a]
mov ebx, dword [sym.imp.MSVCRT.dll_tolower]
mov byte [esp + 0x26], dl
mov dx, word [0x41e500]
mov dword [esp + 0x10], esi
mov word [esp + 0x14], dx
mov dl, byte [0x41e4fe]
not ecx
dec ecx
mov byte [esp + 0x1e], dl
je 0x406928
test ebp, ebp
jne 0x4068ee
cmp byte [esi], 0x22
jne 0x4068ee
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 0x40690a
cmp byte [esi + ebp], 0x22
jne 0x40690a
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 0x4068e2
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x406a50
call sub.MFC42.DLL_AfxGetModuleState
mov esi, dword [eax + 0x10]
lea edx, [esp + 0x48]
push edx
call fcn.00407810
add esp, 4
push esi
push eax
lea eax, [esp + 0x40]
mov dword [esp + 0x45c], 0
push eax
call sub.MFC42.DLL_operator_3
push str..txt
lea ecx, [esp + 0x48]
push eax
push ecx
mov byte [esp + 0x460], 1
call sub.MFC42.DLL_operator_3
mov eax, dword [eax]
push 0x41e4ec
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 0x406a50
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 0x406a50
test esi, esi
jne 0x406a0e
cmp byte [esp + 0x4c], 0x22
jne 0x406a0e
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 0x406a2e
cmp byte [esp + esi + 0x4c], 0x22
jne 0x406a2e
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 0x4069fe
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 0x407762
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 0x40774b
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 0x406d3f
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 0x406ace
test al, al
je 0x406aca
mov al, byte [ecx + edx + 1]
inc ecx
cmp al, 0x20
je 0x406abd
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 0x406d14
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 0x406b19
test esi, esi
je 0x406d14
jle 0x406b19
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x406d09
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 0x406b50
test esi, esi
je 0x406d14
jle 0x406b50
mov ecx, dword [esp + 0x10]
cmp byte [esi + ecx - 1], 0x20
je 0x406d09
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 0x406b87
test esi, esi
je 0x406d14
jle 0x406b87
mov eax, dword [esp + 0x10]
cmp byte [esi + eax - 1], 0x20
je 0x406d09
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 0x406bbe
test esi, esi
je 0x406d14
jle 0x406bbe
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x406d09
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 0x406bf5
test esi, esi
je 0x406d14
jle 0x406bf5
mov ecx, dword [esp + 0x10]
cmp byte [esi + ecx - 1], 0x20
je 0x406d09
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 0x406c2c
test esi, esi
je 0x406d14
jle 0x406c2c
mov eax, dword [esp + 0x10]
cmp byte [esi + eax - 1], 0x20
je 0x406d09
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 0x406c63
test esi, esi
je 0x406d14
jle 0x406c63
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x406d09
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 0x406c96
test esi, esi
je 0x406d14
jle 0x406c96
mov ecx, dword [esp + 0x10]
cmp byte [esi + ecx - 1], 0x20
je 0x406d09
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 0x406cc5
test esi, esi
je 0x406d14
jle 0x406cc5
mov eax, dword [esp + 0x10]
cmp byte [esi + eax - 1], 0x20
je 0x406d09
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 0x406cf4
test esi, esi
je 0x406d14
jle 0x406cf4
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x406d0f
mov eax, dword [esp + 0x10]
inc esi
lea ebp, [esi + eax]
mov al, byte [esi + eax]
test al, al
jne 0x406ae2
jmp 0x406d14
test esi, esi
jle 0x406d14
jmp 0x406d13
test esi, esi
jle 0x406d14
dec esi
mov ecx, dword [esp + 0x38]
mov ebp, esi
sub ebp, ecx
test ebp, ebp
jle 0x40774b
lea ecx, [ebp + 1]
push ecx
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
test edi, edi
je 0x40774b
jmp 0x407719
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 0x406d7a
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 0x40774b
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 0x406db5
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 0x40774b
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 0x406df2
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 0x40774b
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 0x406e2d
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 0x40774b
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 0x406e68
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 0x40774b
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 0x406ea5
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 0x40774b
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 0x406ee0
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 0x40774b
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 0x406f1b
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 0x40774b
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 0x40717e
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 0x406f65
test al, al
je 0x406f65
mov al, byte [ebx + ecx + 1]
inc ebx
cmp al, 0x20
je 0x406f58
lea eax, [ebx + ecx]
mov ebp, ebx
cmp byte [eax], 0
je 0x407126
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 0x40711b
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 0x40711b
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 0x40711b
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 0x40711b
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 0x40711b
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 0x40711b
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 0x40711b
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 0x40711b
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 0x40711b
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 0x40711b
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 0x407121
mov al, byte [esi + 1]
inc ebp
inc esi
test al, al
jne 0x406f7a
jmp 0x407126
test ebp, ebp
jle 0x407126
jmp 0x407125
test ebp, ebp
jle 0x407126
dec ebp
mov edi, ebp
sub edi, ebx
test edi, edi
jle 0x407171
lea eax, [edi + 1]
push eax
call sub.MFC42.DLL_operatornew
mov esi, eax
add esp, 4
test esi, esi
je 0x407171
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
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ebx, dword [sym.imp.MSVCRT.dll_strncmp]
mov esi, ebp
jmp 0x40774b
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 0x407488
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 0x4071c8
test al, al
je 0x4071c8
mov al, byte [ebx + ecx + 1]
inc ebx
cmp al, 0x20
je 0x4071bb
mov al, byte [ebx + ecx]
lea ebp, [ebx + ecx]
test al, al
mov esi, ebx
je 0x407432
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 0x407213
test esi, esi
je 0x407432
jle 0x407213
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x407427
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 0x40724e
test esi, esi
je 0x407432
jle 0x40724e
mov ecx, dword [esp + 0x10]
cmp byte [esi + ecx - 1], 0x20
je 0x407427
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 0x407289
test esi, esi
je 0x407432
jle 0x407289
mov eax, dword [esp + 0x10]
cmp byte [esi + eax - 1], 0x20
je 0x407427
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 0x4072c4
test esi, esi
je 0x407432
jle 0x4072c4
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x407427
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 0x4072ff
test esi, esi
je 0x407432
jle 0x4072ff
mov ecx, dword [esp + 0x10]
cmp byte [esi + ecx - 1], 0x20
je 0x407427
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 0x40733a
test esi, esi
je 0x407432
jle 0x40733a
mov eax, dword [esp + 0x10]
cmp byte [esi + eax - 1], 0x20
je 0x407427
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 0x407375
test esi, esi
je 0x407432
jle 0x407375
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x407427
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 0x4073ac
test esi, esi
je 0x407432
jle 0x4073ac
mov ecx, dword [esp + 0x10]
cmp byte [esi + ecx - 1], 0x20
je 0x407427
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 0x4073df
test esi, esi
je 0x407432
jle 0x4073df
mov eax, dword [esp + 0x10]
cmp byte [esi + eax - 1], 0x20
je 0x407427
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 0x407412
test esi, esi
je 0x407432
jle 0x407412
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x40742d
mov eax, dword [esp + 0x10]
inc esi
lea ebp, [esi + eax]
mov al, byte [esi + eax]
test al, al
jne 0x4071d8
jmp 0x407432
test esi, esi
jle 0x407432
jmp 0x407431
test esi, esi
jle 0x407432
dec esi
mov ebp, esi
sub ebp, ebx
test ebp, ebp
jle 0x40747d
lea ecx, [ebp + 1]
push ecx
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
test edi, edi
je 0x40747d
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
push edi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ebx, dword [sym.imp.MSVCRT.dll_strncmp]
jmp 0x40774b
mov al, byte [ebp]
mov dword [esp + 0x38], esi
cmp al, 0x20
jne 0x4076e7
mov ecx, dword [esp + 0x10]
mov al, 0x20
test al, al
je 0x4074aa
mov al, byte [esi + ecx + 1]
inc esi
cmp al, 0x20
je 0x40749d
mov dword [esp + 0x38], esi
mov al, byte [esi + ecx]
lea ebp, [esi + ecx]
test al, al
mov dword [esp + 0x44], ebp
je 0x4076fb
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 0x4074f7
test esi, esi
je 0x4076fb
jle 0x4074f7
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x4076f0
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 0x40752e
test esi, esi
je 0x4076fb
jle 0x40752e
mov ecx, dword [esp + 0x10]
cmp byte [esi + ecx - 1], 0x20
je 0x4076f0
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 0x407565
test esi, esi
je 0x4076fb
jle 0x407565
mov eax, dword [esp + 0x10]
cmp byte [esi + eax - 1], 0x20
je 0x4076f0
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 0x40759c
test esi, esi
je 0x4076fb
jle 0x40759c
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x4076f0
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 0x4075d3
test esi, esi
je 0x4076fb
jle 0x4075d3
mov ecx, dword [esp + 0x10]
cmp byte [esi + ecx - 1], 0x20
je 0x4076f0
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 0x40760a
test esi, esi
je 0x4076fb
jle 0x40760a
mov eax, dword [esp + 0x10]
cmp byte [esi + eax - 1], 0x20
je 0x4076f0
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 0x407641
test esi, esi
je 0x4076fb
jle 0x407641
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x4076f0
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 0x407674
test esi, esi
je 0x4076fb
jle 0x407674
mov ecx, dword [esp + 0x10]
cmp byte [esi + ecx - 1], 0x20
je 0x4076f0
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 0x4076a3
test esi, esi
je 0x4076fb
jle 0x4076a3
mov eax, dword [esp + 0x10]
cmp byte [esi + eax - 1], 0x20
je 0x4076f0
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 0x4076d2
test esi, esi
je 0x4076fb
jle 0x4076d2
mov edx, dword [esp + 0x10]
cmp byte [esi + edx - 1], 0x20
je 0x4076f6
mov eax, dword [esp + 0x10]
inc esi
lea ebp, [esi + eax]
mov al, byte [esi + eax]
test al, al
jne 0x4074c0
jmp 0x4076fb
mov ecx, dword [esp + 0x10]
jmp 0x4074ae
test esi, esi
jle 0x4076fb
jmp 0x4076fa
test esi, esi
jle 0x4076fb
dec esi
mov ecx, dword [esp + 0x38]
mov ebp, esi
sub ebp, ecx
test ebp, ebp
jle 0x40774b
lea ecx, [ebp + 1]
push ecx
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
test edi, edi
je 0x40774b
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
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 0x406a6c
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 0x41e4e8
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 0x4077db
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_1
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