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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x1b8
mov eax, dword [0x40f040]
xor eax, esp
mov dword [esp + 0x1b4], eax
push esi
push edi
push 0x110
mov dword [esp + 0x24], ecx
call fcn.0040a68c
mov ecx, eax
add esp, 4
mov dword [esp + 0x3c], ecx
mov byte [ecx + 8], 0
mov byte [ecx + 0x18], 0
mov byte [ecx + 0xf0], 0
mov byte [ecx + 0x100], 0
mov dword [ecx + 0xd8], 0
mov dword [ecx + 0xe8], 0
mov dword [ecx + 0xdc], 0
mov dword [ecx + 0xe0], 0
mov dword [ecx + 0xe4], 0
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 0xec], 0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], ecx
mov dword [ecx + 0xec], eax
mov eax, dword [esp + 0x10]
mov dword [eax + 0xd8], 1
xor eax, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
nop dword [eax + eax]
mov edx, dword [esp + 0x38]
lea esi, [eax + 0x40f4a0]
mov eax, dword [esi + 0x18]
mov cl, 1
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], eax
mov byte [esp + 0x1a], 0
mov dl, byte [edx + eax + 0x40f49f]
mov byte [esp + 0x28], dl
mov dl, byte [esi + 0x44]
mov byte [esp + 0x1f], dl
test dl, dl
mov edx, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
jne 0x40566b
xor edi, edi
test eax, eax
jle 0x405865
mov eax, dword [esp + 0x20]
add eax, edi
cmp byte [0x40f484], 0
je 0x405615
mov al, byte [eax]
jmp 0x40563a
push 0
push 1
lea ecx, [esp + 0x25]
mov byte [esp + 0x25], 0
push ecx
push eax
push dword [0x40f488]
call edx
mov al, byte [esp + 0x1d]
mov ecx, dword [esp + 0x30]
mov edx, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
cmp al, byte [esi]
movzx ecx, cl
mov dword [esp + 0x24], 0
cmovne ecx, dword [esp + 0x24]
inc edi
inc esi
mov dword [esp + 0x30], ecx
cmp edi, dword [esp + 0x2c]
jl 0x405602
mov edi, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test cl, cl
jne 0x40586b
jmp 0x405841
xor edi, edi
cmp byte [esp + 0x1f], 0x40
jae 0x40577a
dec eax
mov dword [esp + 0x24], eax
test eax, eax
jle 0x4056e4
mov eax, dword [esp + 0x20]
add eax, edi
cmp byte [0x40f484], 0
je 0x405694
mov al, byte [eax]
jmp 0x4056b9
push 0
push 1
lea ecx, [esp + 0x24]
mov byte [esp + 0x24], 0
push ecx
push eax
push dword [0x40f488]
call edx
mov al, byte [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov edx, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov byte [esp + 0x1b], al
movzx eax, cl
mov cl, byte [esp + 0x1b]
cmp cl, byte [esi]
mov ecx, 0
cmovne eax, ecx
inc edi
mov cl, al
inc esi
mov dword [esp + 0x30], ecx
cmp edi, dword [esp + 0x24]
jl 0x405681
test cl, cl
je 0x40583b
mov eax, dword [esp + 0x20]
xor cl, cl
add eax, edi
mov dword [esp + 0x30], ecx
cmp byte [0x40f484], cl
je 0x4056fc
mov al, byte [eax]
jmp 0x40571b
push 0
push 1
lea ecx, [esp + 0x21]
mov byte [esp + 0x21], 0
push ecx
push eax
push dword [0x40f488]
call edx
mov al, byte [esp + 0x19]
mov ecx, dword [esp + 0x30]
movzx esi, byte [esp + 0x28]
movzx eax, al
sub eax, esi
js 0x40583b
mov eax, dword [esp + 0x20]
add eax, edi
cmp byte [0x40f484], 0
mov edi, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
je 0x405744
mov al, byte [eax]
jmp 0x40575f
push 0
push 1
lea ecx, [esp + 0x20]
mov byte [esp + 0x20], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov al, byte [esp + 0x18]
movzx ecx, al
movzx eax, byte [esp + 0x1f]
sub ecx, esi
cmp ecx, eax
jl 0x40586b
mov ecx, dword [esp + 0x30]
jmp 0x405841
test eax, eax
jle 0x4057df
nop
mov eax, dword [esp + 0x20]
add eax, edi
cmp byte [0x40f484], 0
je 0x405793
mov al, byte [eax]
jmp 0x4057b8
push 0
push 1
lea ecx, [esp + 0x1f]
mov byte [esp + 0x1f], 0
push ecx
push eax
push dword [0x40f488]
call edx
mov al, byte [esp + 0x17]
mov ecx, dword [esp + 0x30]
mov edx, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov byte [esp + 0x1b], al
movzx eax, cl
mov cl, byte [esp + 0x1b]
cmp cl, byte [esi]
mov ecx, 0
cmovne eax, ecx
inc edi
mov cl, al
inc esi
mov dword [esp + 0x30], ecx
cmp edi, dword [esp + 0x2c]
jl 0x405780
test cl, cl
je 0x40583b
mov eax, dword [esp + 0x20]
xor cl, cl
add eax, edi
mov dword [esp + 0x30], ecx
mov byte [esp + 0x1a], 1
cmp byte [0x40f484], cl
je 0x4057fc
mov al, byte [eax]
jmp 0x40581b
push 0
push 1
lea ecx, [esp + 0x26]
mov byte [esp + 0x26], 0
push ecx
push eax
push dword [0x40f488]
call edx
mov al, byte [esp + 0x1e]
mov ecx, dword [esp + 0x30]
movzx edx, byte [esp + 0x1f]
and al, 0x3f
mov edi, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
movzx esi, al
lea eax, [edx - 0x40]
cmp esi, eax
jl 0x405841
lea eax, [edx - 0x38]
cmp esi, eax
jl 0x40586b
jmp 0x405841
mov edi, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov eax, dword [esp + 0x38]
inc dword [esp + 0x34]
add eax, 0x48
mov dword [esp + 0x38], eax
cmp eax, 0x24d8
jb 0x4055c0
test cl, cl
je case.default.0x4075a8
jmp 0x40586b
mov edi, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov eax, dword [esp + 0x34]
lea esi, [eax + eax*8]
mov eax, dword [esp + 0x10]
mov ecx, dword [esi*8 + 0x40f4bc]
mov dword [eax], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esi*8 + 0x40f4c0]
mov dword [eax + 4], ecx
lea eax, [esi*8 + 0x40f4a8]
push eax
mov eax, dword [esp + 0x14]
add eax, 8
push 0x10
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
mov eax, dword [esp + 0x2c]
add esp, 0xc
dec eax
add eax, dword [esi*8 + 0x40f4b8]
cmp byte [0x40f484], 0
je 0x4058c1
mov al, byte [eax]
jmp 0x4058dc
push 0
push 1
lea ecx, [esp + 0x26]
mov byte [esp + 0x26], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov al, byte [esp + 0x1e]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
movzx eax, al
and eax, 0xf
mov dword [esp + 0x30], 0
mov ecx, dword [eax*4 + 0x40c658]
mov eax, dword [esp + 0x10]
add eax, 8
mov dword [esp + 0x24], ecx
push eax
mov dword [esp + 0x30], eax
call esi
test eax, eax
jle 0x405b59
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0xb8]
sub ecx, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x3c], ecx
nop word [eax + eax]
push 0x40c988
mov dword [esp + 0x3c], 1
xor esi, esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x405b66
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
xor ecx, ecx
push 0x40c988
mov al, byte [esi + eax]
cmp al, byte [esi + 0x40c988]
cmovne edi, ecx
inc esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp esi, eax
jl 0x405951
mov dword [esp + 0x38], edi
cmp dword [esp + 0x38], 0
mov edi, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
jne 0x405b66
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x30]
push dword [esp + 0x2c]
mov al, byte [ecx]
inc esi
mov byte [edx + ecx], al
inc ecx
mov dword [esp + 0x34], esi
mov dword [esp + 0x2c], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp esi, eax
jl 0x405930
mov ecx, dword [esp + 0x10]
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
lea eax, [ecx + 8]
push eax
lea eax, [ecx + 0x18]
push 0x80
push eax
call esi
mov eax, dword [esp + 0x40]
add esp, 0xc
lea eax, [eax + eax*8]
lea eax, [eax*8 + 0x40f4c4]
push eax
mov eax, dword [esp + 0x14]
add eax, 0xf0
push 0x10
push eax
call esi
mov eax, dword [esp + 0x40]
add esp, 0xc
lea eax, [eax + eax*8]
lea eax, [eax*8 + 0x40f4d4]
push eax
mov eax, dword [esp + 0x14]
add eax, 0x100
push 0x10
push eax
call esi
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcat_s]
mov eax, dword [ecx]
cmp eax, 2
je 0x405a43
cmp eax, 3
je 0x405a43
cmp eax, 4
je 0x405a43
push 0x40c984
lea eax, [ecx + 0x18]
push 0x80
push eax
call esi
mov ecx, dword [esp + 0x1c]
add esp, 0xc
cmp dword [ecx], 1
jne 0x405a61
lea eax, [ecx + 0xf0]
push eax
lea eax, [ecx + 0x18]
push 0x80
push eax
call esi
mov ecx, dword [esp + 0x1c]
add esp, 0xc
xor al, al
mov byte [esp + 0x1f], 0
cmp byte [esp + 0x1a], 0
lea edx, [esp + 0x18]
mov byte [esp + 0x19], al
lea eax, [esp + 0x1c]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x20]
mov dword [esp + 0x84], eax
lea eax, [esp + 0x10]
mov dword [esp + 0x88], eax
lea eax, [esp + 0x1d]
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x1b]
movups xmm0, xmmword [esp + 0x80]
mov dword [esp + 0x90], eax
lea eax, [esp + 0x17]
mov dword [esp + 0x94], eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x20]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x10]
mov dword [esp + 0x48], eax
mov dword [esp + 0x74], eax
lea eax, [esp + 0xa0]
mov dword [esp + 0x78], eax
lea eax, [esp + 0x20]
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x10]
mov dword [esp + 0x68], eax
lea eax, [esp + 0xa0]
movups xmmword [esp + 0x4c], xmm0
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x20]
movq xmm0, qword [esp + 0x90]
movq qword [esp + 0x5c], xmm0
mov dword [esp + 0x64], edx
mov dword [esp + 0x70], eax
mov dword [ecx + 0xd8], 0
je 0x405b37
mov eax, dword [esp + 0x10]
inc dword [eax + 0xd8]
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xd8]
add eax, dword [esp + 0x20]
cmp byte [0x40f484], 0
je 0x405be2
mov cl, byte [eax]
jmp 0x405c01
cmp dword [esp + 0x3c], 0
je 0x4059b5
jmp 0x405b6c
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push dword [esp + 0x24]
call esi
test eax, eax
jle 0x405ba9
mov edi, dword [esp + 0x30]
xor ecx, ecx
nop dword [eax]
mov edx, dword [esp + 0x24]
push edx
mov al, byte [ecx + edx]
inc ecx
mov byte [esp + edi + 0xbc], al
inc edi
mov dword [esp + 0x40], ecx
call esi
mov ecx, dword [esp + 0x3c]
cmp ecx, eax
jl 0x405b80
mov dword [esp + 0x30], edi
mov edi, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov eax, dword [esp + 0x30]
cmp eax, 0xff
jae 0x407c4e
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xb8]
mov byte [esp + eax + 0xb8], 0
mov eax, ecx
sub edx, eax
nop
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x405bd0
jmp 0x4059b5
push 0
push 1
lea ecx, [esp + 0x22]
mov byte [esp + 0x22], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov cl, byte [esp + 0x1a]
mov edx, dword [esp + 0x10]
mov al, cl
mov byte [esp + 0x1c], cl
shr al, 5
mov byte [esp + 0x1d], al
mov al, cl
shr al, 6
mov byte [esp + 0x1b], al
mov al, cl
and al, 7
shr cl, 3
mov byte [esp + 0x17], al
and cl, 7
mov eax, dword [esp + 0x34]
mov byte [esp + 0x18], cl
lea eax, [eax + eax*8]
mov eax, dword [eax*8 + 0x40f4b8]
dec eax
mov dword [edx + 0xd8], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
cmp eax, 0x13
ja case.0x405c4d.2
jmp dword [eax*4 + 0x407c54]
mov eax, dword [esp + 0x10]
add eax, 0xf0
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x405c74
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0xf0]
jmp 0x405c92
mov eax, dword [esp + 0x10]
add eax, 0x100
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x405cb8
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0x100]
push eax
lea eax, [ecx + 0x18]
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
add eax, 0x18
push 0x40c984
push 0x80
push eax
call esi
add esp, 0xc
mov eax, dword [esp + 0x34]
lea eax, [eax + eax*8]
mov ecx, dword [eax*8 + 0x40f4b8]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xd8], ecx
jmp case.0x405c4d.2
lea ecx, [esp + 0x40]
call fcn.00407d00
jmp case.0x405c4d.2
lea ecx, [esp + 0x40]
call fcn.00407d00
mov ecx, dword [esp + 0x10]
mov dl, byte [0x40f484]
mov eax, dword [ecx + 0xd8]
add eax, dword [esp + 0x20]
test dl, dl
je 0x405d08
mov al, byte [eax]
jmp 0x405d2d
push 0
push 1
lea ecx, [esp + 0x22]
mov byte [esp + 0x22], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov al, byte [esp + 0x1a]
mov ecx, dword [esp + 0x10]
mov dl, byte [0x40f484]
movzx eax, al
mov dword [ecx + 0xdc], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xd8]
add eax, dword [esp + 0x20]
test dl, dl
je 0x405d4c
mov al, byte [eax]
jmp 0x405d67
push 0
push 1
lea ecx, [esp + 0x26]
mov byte [esp + 0x26], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov al, byte [esp + 0x1e]
movzx eax, al
push eax
push str._02X
lea eax, [esp + 0xa8]
push eax
call fcn.0040a030
add esp, 0xc
lea eax, [esp + 0xa0]
push eax
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
inc dword [eax + 0xd8]
jmp case.0x405c4d.2
lea ecx, [esp + 0x40]
call fcn.00407d00
mov ecx, dword [esp + 0x10]
mov dl, byte [0x40f484]
mov eax, dword [ecx + 0xd8]
add eax, dword [esp + 0x20]
test dl, dl
je 0x405dcf
movzx eax, word [eax]
jmp 0x405df8
push 0
push 2
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], 0
push ecx
push eax
push dword [0x40f488]
call edi
movzx eax, word [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov dl, byte [0x40f484]
movzx eax, ax
mov dword [ecx + 0xe0], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xd8]
add eax, dword [esp + 0x20]
test dl, dl
je 0x405e18
movzx eax, word [eax]
jmp 0x405e37
push 0
push 2
lea ecx, [esp + 0x34]
mov dword [esp + 0x34], 0
push ecx
push eax
push dword [0x40f488]
call edi
movzx eax, word [esp + 0x2c]
movzx eax, ax
push eax
lea eax, [esp + 0xa4]
push str._04X
push eax
call fcn.0040a030
add esp, 0xc
lea eax, [esp + 0xa0]
push eax
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [eax + 0xd8], 2
jmp case.0x405c4d.2
lea ecx, [esp + 0x40]
call fcn.00407d00
mov ecx, dword [esp + 0x10]
mov dl, byte [0x40f484]
mov eax, dword [ecx + 0xd8]
add eax, dword [esp + 0x20]
test dl, dl
je 0x405e9f
mov eax, dword [eax]
jmp 0x405ec7
push 0
push 4
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov dl, byte [0x40f484]
mov dword [ecx + 0xe4], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xd8]
add eax, dword [esp + 0x20]
test dl, dl
je 0x405ee3
mov eax, dword [eax]
jmp 0x405f01
push 0
push 4
lea ecx, [esp + 0x34]
mov dword [esp + 0x34], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov eax, dword [esp + 0x2c]
push eax
lea eax, [esp + 0xa4]
push str._08X
push eax
call fcn.0040a030
add esp, 0xc
lea eax, [esp + 0xa0]
push eax
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [eax + 0xd8], 4
jmp case.0x405c4d.2
mov eax, dword [esp + 0x10]
add eax, 0xf0
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x405f61
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0xf0]
jmp 0x405f7f
mov eax, dword [esp + 0x10]
add eax, 0x100
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x405fa5
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0x100]
push eax
lea eax, [ecx + 0x18]
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
add eax, 0x18
push 0x40c984
push 0x80
push eax
call esi
add esp, 0xc
lea ecx, [esp + 0x40]
call fcn.00407d00
mov ecx, dword [esp + 0x10]
mov dl, byte [0x40f484]
mov eax, dword [ecx + 0xd8]
add eax, dword [esp + 0x20]
test dl, dl
je 0x405fca
mov al, byte [eax]
jmp 0x405fef
push 0
push 1
lea ecx, [esp + 0x22]
mov byte [esp + 0x22], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov al, byte [esp + 0x1a]
mov ecx, dword [esp + 0x10]
mov dl, byte [0x40f484]
movzx eax, al
mov dword [ecx + 0xdc], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xd8]
add eax, dword [esp + 0x20]
test dl, dl
je 0x40600e
mov al, byte [eax]
jmp 0x40602d
push 0
push 1
lea ecx, [esp + 0x26]
mov byte [esp + 0x26], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov al, byte [esp + 0x1e]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0xd8]
movsx eax, al
add ecx, eax
mov eax, dword [esp + 0x20]
inc eax
add eax, ecx
push eax
push str._08X
jmp 0x405d70
mov eax, dword [esp + 0x10]
add eax, 0xf0
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x40606a
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0xf0]
jmp 0x406088
mov eax, dword [esp + 0x10]
add eax, 0x100
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x4060ae
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0x100]
push eax
lea eax, [ecx + 0x18]
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
add eax, 0x18
push 0x40c984
push 0x80
push eax
call esi
add esp, 0xc
lea ecx, [esp + 0x40]
call fcn.00407d00
mov ecx, dword [esp + 0x10]
mov dl, byte [0x40f484]
mov eax, dword [ecx + 0xd8]
add eax, dword [esp + 0x20]
test dl, dl
je 0x4060d4
movzx eax, word [eax]
jmp 0x4060fd
push 0
push 2
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], 0
push ecx
push eax
push dword [0x40f488]
call edi
movzx eax, word [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov dl, byte [0x40f484]
movzx eax, ax
mov dword [ecx + 0xe0], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xd8]
add eax, dword [esp + 0x20]
test dl, dl
je 0x40611d
movzx eax, word [eax]
jmp 0x406140
push 0
push 2
lea ecx, [esp + 0x34]
mov dword [esp + 0x34], 0
push ecx
push eax
push dword [0x40f488]
call edi
movzx eax, word [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0xd8]
cwde
add ecx, eax
mov eax, dword [esp + 0x20]
add eax, 2
add eax, ecx
jmp 0x405e3a
mov eax, dword [esp + 0x10]
add eax, 0xf0
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x406177
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0xf0]
jmp 0x406195
mov eax, dword [esp + 0x10]
add eax, 0x100
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x4061bb
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0x100]
push eax
lea eax, [ecx + 0x18]
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
add eax, 0x18
push 0x40c984
push 0x80
push eax
call esi
add esp, 0xc
lea ecx, [esp + 0x40]
call fcn.00407d00
mov ecx, dword [esp + 0x10]
mov dl, byte [0x40f484]
mov eax, dword [ecx + 0xd8]
add eax, dword [esp + 0x20]
test dl, dl
je 0x4061e0
mov eax, dword [eax]
jmp 0x406208
push 0
push 4
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov dl, byte [0x40f484]
mov dword [ecx + 0xe4], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xd8]
add eax, dword [esp + 0x20]
test dl, dl
je 0x406224
mov edx, dword [eax]
jmp 0x406246
push 0
push 4
lea ecx, [esp + 0x34]
mov dword [esp + 0x34], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xd8]
mov ecx, dword [esp + 0x20]
add eax, edx
add ecx, 4
add eax, ecx
jmp 0x405f01
lea ecx, [esp + 0x40]
call fcn.00407d00
movzx eax, byte [esp + 0x17]
push dword [eax*4 + 0x40c638]
jmp 0x406ef0
lea ecx, [esp + 0x40]
call fcn.00407d00
movzx eax, byte [esp + 0x17]
push dword [eax*4 + 0x40c588]
jmp 0x406ef0
lea ecx, [esp + 0x40]
call fcn.00407d00
movzx eax, byte [esp + 0x17]
push dword [eax*4 + 0x40c5a8]
jmp 0x406ef0
lea ecx, [esp + 0x40]
call fcn.00407d00
movzx eax, byte [esp + 0x17]
push dword [eax*4 + 0x40c618]
jmp 0x406ef0
lea ecx, [esp + 0x40]
call fcn.00407d00
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xd8]
add eax, dword [esp + 0x20]
cmp byte [0x40f484], 0
je 0x4062e8
mov cl, byte [eax]
jmp 0x406307
push 0
push 1
lea ecx, [esp + 0x22]
mov byte [esp + 0x22], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov cl, byte [esp + 0x1a]
mov edx, dword [esp + 0x10]
mov al, cl
mov byte [esp + 0x1c], cl
shr al, 5
mov byte [esp + 0x1d], al
mov al, cl
shr al, 6
mov byte [esp + 0x1b], al
mov al, cl
and al, 7
shr cl, 3
and cl, 7
mov byte [esp + 0x17], al
movzx eax, cl
mov byte [esp + 0x18], cl
mov dword [edx + 0x98], eax
cmp byte [esp + 0x1b], 0
je 0x406350
movzx eax, byte [esp + 0x18]
push dword [eax*4 + 0x40c638]
jmp 0x406ef0
movzx eax, byte [esp + 0x17]
sub eax, 4
je 0x40633f
sub eax, 1
je 0x406370
movzx eax, byte [esp + 0x18]
push dword [eax*4 + 0x40c638]
jmp 0x406ef0
movzx eax, byte [esp + 0x1c]
sub eax, 5
cdq
and edx, 7
add eax, edx
sar eax, 3
push dword [eax*4 + 0x40c638]
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
inc dword [eax + 0xd8]
mov eax, dword [esp + 0x10]
mov dword [eax + 4], 0x11
jmp case.0x405c4d.2
lea ecx, [esp + 0x40]
call fcn.00407d00
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xd8]
add eax, dword [esp + 0x20]
cmp byte [0x40f484], 0
je 0x4063d8
mov cl, byte [eax]
jmp 0x4063f7
push 0
push 1
lea ecx, [esp + 0x22]
mov byte [esp + 0x22], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov cl, byte [esp + 0x1a]
mov edx, dword [esp + 0x10]
mov al, cl
mov byte [esp + 0x1c], cl
shr al, 5
mov byte [esp + 0x1d], al
mov al, cl
shr al, 6
mov byte [esp + 0x1b], al
mov al, cl
and al, 7
shr cl, 3
and cl, 7
mov byte [esp + 0x17], al
movzx eax, cl
mov byte [esp + 0x18], cl
mov dword [edx + 0xa8], eax
cmp byte [esp + 0x1b], 0
je 0x406440
movzx eax, byte [esp + 0x18]
push dword [eax*4 + 0x40c588]
jmp 0x406ef0
movzx eax, byte [esp + 0x17]
sub eax, 4
je 0x40642f
sub eax, 1
je 0x406460
movzx eax, byte [esp + 0x18]
push dword [eax*4 + 0x40c588]
jmp 0x406ef0
movzx eax, byte [esp + 0x1c]
sub eax, 5
cdq
and edx, 7
add eax, edx
sar eax, 3
push dword [eax*4 + 0x40c588]
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
inc dword [eax + 0xd8]
mov eax, dword [esp + 0x10]
mov dword [eax + 4], 0x11
jmp case.0x405c4d.2
lea ecx, [esp + 0x40]
call fcn.00407d00
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xd8]
add eax, dword [esp + 0x20]
cmp byte [0x40f484], 0
je 0x4064c8
mov cl, byte [eax]
jmp 0x4064e7
push 0
push 1
lea ecx, [esp + 0x22]
mov byte [esp + 0x22], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov cl, byte [esp + 0x1a]
mov edx, dword [esp + 0x10]
mov al, cl
mov byte [esp + 0x1c], cl
shr al, 5
mov byte [esp + 0x1d], al
mov al, cl
shr al, 6
mov byte [esp + 0x1b], al
mov al, cl
and al, 7
shr cl, 3
and cl, 7
mov byte [esp + 0x17], al
movzx eax, cl
mov byte [esp + 0x18], cl
mov dword [edx + 0xb8], eax
cmp byte [esp + 0x1b], 0
je 0x406530
movzx eax, byte [esp + 0x18]
push dword [eax*4 + 0x40c5a8]
jmp 0x406ef0
movzx eax, byte [esp + 0x17]
sub eax, 4
je 0x40651f
sub eax, 1
je 0x406550
movzx eax, byte [esp + 0x18]
push dword [eax*4 + 0x40c5a8]
jmp 0x406ef0
movzx eax, byte [esp + 0x1c]
sub eax, 5
cdq
and edx, 7
add eax, edx
sar eax, 3
push dword [eax*4 + 0x40c5a8]
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
inc dword [eax + 0xd8]
mov eax, dword [esp + 0x10]
mov dword [eax + 4], 0x11
jmp case.0x405c4d.2
lea ecx, [esp + 0x40]
call fcn.00407d00
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xd8]
add eax, dword [esp + 0x20]
cmp byte [0x40f484], 0
je 0x4065b8
mov cl, byte [eax]
jmp 0x4065d7
push 0
push 1
lea ecx, [esp + 0x22]
mov byte [esp + 0x22], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov cl, byte [esp + 0x1a]
mov edx, dword [esp + 0x10]
mov al, cl
mov byte [esp + 0x1c], cl
shr al, 5
mov byte [esp + 0x1d], al
mov al, cl
shr al, 6
mov byte [esp + 0x1b], al
mov al, cl
and al, 7
shr cl, 3
and cl, 7
mov byte [esp + 0x17], al
movzx eax, cl
mov byte [esp + 0x18], cl
mov dword [edx + 0xc8], eax
cmp byte [esp + 0x1b], 0
je 0x406620
movzx eax, byte [esp + 0x18]
push dword [eax*4 + 0x40c618]
jmp 0x406ef0
movzx eax, byte [esp + 0x17]
sub eax, 4
je 0x40660f
sub eax, 1
je 0x406640
movzx eax, byte [esp + 0x18]
push dword [eax*4 + 0x40c618]
jmp 0x406ef0
movzx eax, byte [esp + 0x1c]
sub eax, 5
cdq
and edx, 7
add eax, edx
sar eax, 3
push dword [eax*4 + 0x40c618]
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
inc dword [eax + 0xd8]
mov eax, dword [esp + 0x10]
mov dword [eax + 4], 0x11
jmp case.0x405c4d.2
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
cmp eax, 9
je 0x4066ab
cmp eax, 0xa
je 0x4066ab
cmp eax, 0xb
je 0x4066ab
cmp eax, 0x13
je 0x4066ab
xor al, al
mov byte [esp + 0x19], al
jmp 0x4066b0
mov byte [esp + 0x19], 1
lea ecx, [esp + 0x40]
call fcn.00407d00
lea ecx, [esp + 0x40]
call fcn.00407d00
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x17]
mov dword [eax + 0xb8], ecx
movzx eax, byte [esp + 0x1b]
cmp eax, 3
ja case.default.0x4066df
jmp dword [eax*4 + 0x407ca4]
cmp dword [esp + 0x34], 0x13
je 0x406803
mov ecx, dword [esp + 0x10]
mov edx, str.qword_ptr
add ecx, 0xf0
mov dword [esp + 0x30], ecx
mov eax, ecx
mov cl, byte [eax]
cmp cl, byte [edx]
mov byte [esp + 0x28], cl
mov ecx, dword [esp + 0x30]
jne 0x40673c
cmp byte [esp + 0x28], 0
je 0x406738
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
mov byte [esp + 0x28], cl
mov ecx, dword [esp + 0x30]
jne 0x40673c
add eax, 2
add edx, 2
cmp byte [esp + 0x28], 0
jne 0x406706
xor eax, eax
jmp 0x406741
sbb eax, eax
or eax, 1
test eax, eax
je 0x406803
cmp dword [esp + 0x34], 9
je 0x4067f5
mov edx, str.byte_ptr
mov eax, ecx
nop dword [eax + eax]
mov cl, byte [eax]
cmp cl, byte [edx]
mov byte [esp + 0x28], cl
mov ecx, dword [esp + 0x30]
jne 0x406796
cmp byte [esp + 0x28], 0
je 0x406792
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
mov byte [esp + 0x28], cl
mov ecx, dword [esp + 0x30]
jne 0x406796
add eax, 2
add edx, 2
cmp byte [esp + 0x28], 0
jne 0x406760
xor eax, eax
jmp 0x40679b
sbb eax, eax
or eax, 1
test eax, eax
je 0x4067f5
cmp dword [esp + 0x34], 0xa
je 0x4067e7
mov eax, str.word_ptr
nop dword [eax + eax]
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x4067d0
test dl, dl
je 0x4067cc
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x4067d0
add ecx, 2
add eax, 2
test dl, dl
jne 0x4067b0
xor eax, eax
jmp 0x4067d5
sbb eax, eax
or eax, 1
test eax, eax
je 0x4067e7
movzx eax, byte [esp + 0x17]
push dword [eax*4 + 0x40c5a8]
jmp 0x40680f
movzx eax, byte [esp + 0x17]
push dword [eax*4 + 0x40c588]
jmp 0x40680f
movzx eax, byte [esp + 0x17]
push dword [eax*4 + 0x40c638]
jmp 0x40680f
movzx eax, byte [esp + 0x17]
push dword [eax*4 + 0x40c618]
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov al, byte [esp + 0x24]
add esp, 0xc
mov byte [esp + 0x1f], al
xor dl, dl
jmp 0x406f06
mov eax, dword [esp + 0x10]
add eax, 0xf0
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x406850
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0xf0]
jmp 0x40686e
mov eax, dword [esp + 0x10]
add eax, 0x100
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x406894
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0x100]
push eax
lea eax, [ecx + 0x18]
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
add eax, 0x18
push 0x40c984
push 0x80
push eax
call esi
add esp, 0xc
mov eax, dword [esp + 0x10]
push 0x40c238
add eax, 0x18
push 0x80
push eax
call esi
mov al, byte [esp + 0x24]
add esp, 0xc
mov byte [esp + 0x1f], al
mov al, byte [esp + 0x17]
cmp al, 4
je 0x4068ca
movzx eax, al
push dword [eax*4 + 0x40c5a8]
jmp 0x406dea
lea ecx, [esp + 0x40]
call fcn.00407d00
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x17]
mov dword [eax + 0xb8], ecx
movzx eax, byte [esp + 0x17]
push dword [eax*4 + 0x40c5a8]
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
add esp, 0xc
test byte [esp + 0x1d], 1
je 0x406945
movzx eax, byte [esp + 0x1c]
and eax, 0x1f
cmp eax, 0x10
jae 0x406945
cmp eax, 8
jb 0x406dfc
mov eax, dword [esp + 0x10]
push 0x40c968
add eax, 0x18
push 0x80
push eax
call esi
movzx eax, byte [esp + 0x24]
add esp, 0xc
push dword [eax*4 + 0x40c5a8]
jmp 0x406dea
mov eax, dword [esp + 0x10]
push 0x40c968
add eax, 0x18
push 0x80
push eax
call esi
add esp, 0xc
movzx eax, byte [esp + 0x18]
push dword [eax*4 + 0x40c5a8]
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov cl, byte [esp + 0x27]
add esp, 0xc
test cl, cl
je 0x406dfc
cmp cl, 1
jne 0x406da2
mov eax, 2
jmp 0x406dbb
mov eax, dword [esp + 0x10]
add eax, 0xf0
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x4069b9
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0xf0]
jmp 0x4069d7
mov eax, dword [esp + 0x10]
add eax, 0x100
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x4069fd
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0x100]
push eax
lea eax, [ecx + 0x18]
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
add eax, 0x18
push 0x40c984
push 0x80
push eax
call esi
add esp, 0xc
mov eax, dword [esp + 0x10]
push 0x40c238
add eax, 0x18
push 0x80
push eax
call esi
mov al, byte [esp + 0x24]
add esp, 0xc
mov byte [esp + 0x1f], al
mov al, byte [esp + 0x17]
cmp al, 4
je 0x406a33
movzx eax, al
push dword [eax*4 + 0x40c5a8]
jmp 0x406b3f
lea ecx, [esp + 0x40]
call fcn.00407d00
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x17]
mov dword [eax + 0xb8], ecx
movzx eax, byte [esp + 0x17]
push dword [eax*4 + 0x40c5a8]
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
add esp, 0xc
test byte [esp + 0x1d], 1
je 0x406aae
movzx eax, byte [esp + 0x1c]
and eax, 0x1f
cmp eax, 0x10
jae 0x406aae
cmp eax, 8
jb 0x406b51
mov eax, dword [esp + 0x10]
push 0x40c968
add eax, 0x18
push 0x80
push eax
call esi
movzx eax, byte [esp + 0x24]
add esp, 0xc
push dword [eax*4 + 0x40c5a8]
jmp 0x406b3f
mov eax, dword [esp + 0x10]
push 0x40c968
add eax, 0x18
push 0x80
push eax
call esi
movzx eax, byte [esp + 0x24]
add esp, 0xc
push dword [eax*4 + 0x40c5a8]
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov cl, byte [esp + 0x27]
add esp, 0xc
test cl, cl
je 0x406b51
cmp cl, 1
jne 0x406af7
mov eax, 2
jmp 0x406b10
cmp cl, 2
jne 0x406b03
mov eax, 4
jmp 0x406b10
xor eax, eax
cmp cl, 3
mov ecx, 8
cmove eax, ecx
push eax
lea eax, [esp + 0x2c]
push 0x40c980
push eax
call fcn.0040a050
mov eax, dword [esp + 0x1c]
add esp, 0xc
add eax, 0x18
push 0x40c698
push 0x80
push eax
call esi
add esp, 0xc
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
add esp, 0xc
lea ecx, [esp + 0x74]
call fcn.00407d90
jmp 0x406e05
mov eax, dword [esp + 0x10]
add eax, 0xf0
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x406b7f
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0xf0]
jmp 0x406b9d
mov eax, dword [esp + 0x10]
add eax, 0x100
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x406bc3
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0x100]
push eax
lea eax, [ecx + 0x18]
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
add eax, 0x18
push 0x40c984
push 0x80
push eax
call esi
add esp, 0xc
mov eax, dword [esp + 0x10]
push 0x40c238
add eax, 0x18
push 0x80
push eax
call esi
mov al, byte [esp + 0x24]
add esp, 0xc
movzx ecx, byte [esp + 0x17]
mov byte [esp + 0x1f], al
mov eax, ecx
sub eax, 4
je 0x406c15
sub eax, 1
mov eax, dword [esp + 0x10]
je 0x406d30
push dword [ecx*4 + 0x40c5a8]
add eax, 0x18
push 0x80
push eax
call esi
add esp, 0xc
jmp 0x406e05
lea ecx, [esp + 0x40]
call fcn.00407d00
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x17]
mov dword [eax + 0xb8], ecx
mov al, byte [esp + 0x17]
cmp al, 5
je 0x406d1e
movzx eax, al
push dword [eax*4 + 0x40c5a8]
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
add esp, 0xc
test byte [esp + 0x1d], 1
je 0x406c72
movzx eax, byte [esp + 0x1c]
and eax, 0x1f
cmp eax, 0x10
jae 0x406c72
cmp eax, 8
jb 0x406e05
mov eax, dword [esp + 0x10]
push 0x40c968
add eax, 0x18
push 0x80
push eax
call esi
movzx eax, byte [esp + 0x24]
add esp, 0xc
push dword [eax*4 + 0x40c5a8]
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov cl, byte [esp + 0x27]
add esp, 0xc
test cl, cl
je 0x406e05
cmp cl, 1
jne 0x406cbf
mov eax, 2
jmp 0x406cd8
cmp cl, 2
jne 0x406ccb
mov eax, 4
jmp 0x406cd8
xor eax, eax
cmp cl, 3
mov ecx, 8
cmove eax, ecx
push eax
lea eax, [esp + 0x2c]
push 0x40c980
push eax
call fcn.0040a050
mov eax, dword [esp + 0x1c]
add esp, 0xc
add eax, 0x18
push 0x40c698
push 0x80
push eax
call esi
add esp, 0xc
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
add esp, 0xc
jmp 0x406e05
movzx eax, byte [esp + 0x1d]
dec eax
test al, 1
jne 0x40695c
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xd8]
add eax, dword [esp + 0x20]
cmp byte [0x40f484], 0
je 0x406d47
mov eax, dword [eax]
jmp 0x406d65
push 0
push 4
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov eax, dword [esp + 0x24]
push eax
lea eax, [esp + 0xa4]
push str._08X
push eax
call fcn.0040a030
add esp, 0xc
lea eax, [esp + 0xa0]
push eax
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [eax + 0xd8], 4
jmp 0x406e05
cmp cl, 2
jne 0x406dae
mov eax, 4
jmp 0x406dbb
xor eax, eax
cmp cl, 3
mov ecx, 8
cmove eax, ecx
push eax
lea eax, [esp + 0x2c]
push 0x40c980
push eax
call fcn.0040a050
mov eax, dword [esp + 0x1c]
add esp, 0xc
add eax, 0x18
push 0x40c698
push 0x80
push eax
call esi
add esp, 0xc
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
add esp, 0xc
lea ecx, [esp + 0x68]
call fcn.00407e60
mov eax, dword [esp + 0x10]
push 0x40c98c
add eax, 0x18
push 0x80
push eax
call esi
add esp, 0xc
mov dl, byte [esp + 0x19]
test dl, dl
je 0x406f06
movzx ecx, byte [esp + 0x1f]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x3c], ecx
cmp eax, 9
jne 0x406e7f
mov eax, dword [esp + 0x10]
push dword [ecx*4 + 0x40c638]
push 8
mov dword [eax + 0x9c], ecx
lea eax, [esp + 0xb8]
push eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
call eax
mov ecx, dword [esp + 0x48]
add esp, 0xc
mov eax, dword [esp + 0x34]
cmp eax, 0xb
jne 0x406ea8
mov eax, dword [esp + 0x10]
push dword [ecx*4 + 0x40c5a8]
mov dword [eax + 0xbc], ecx
jmp 0x406ebe
cmp eax, 0xa
jne 0x406e67
mov eax, dword [esp + 0x10]
push dword [ecx*4 + 0x40c588]
push 8
mov dword [eax + 0xac], ecx
lea eax, [esp + 0xb8]
push eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
call eax
jmp 0x406ece
cmp eax, 0x13
jne 0x406ed1
mov eax, dword [esp + 0x10]
push dword [ecx*4 + 0x40c618]
mov dword [eax + 0xcc], ecx
lea eax, [esp + 0xb4]
push 8
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
add esp, 0xc
mov eax, dword [esp + 0x10]
push 0x40c990
add eax, 0x18
push 0x80
push eax
call esi
add esp, 0xc
lea eax, [esp + 0xb0]
push eax
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
add esp, 0xc
mov dl, byte [esp + 0x19]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
cmp ecx, 1
jne 0x406f38
push 0x40c990
add eax, 0x18
push 0x80
push eax
call esi
mov ecx, dword [esp + 0x1c]
add esp, 0xc
lea eax, [ecx + 0x100]
push eax
lea eax, [ecx + 0x18]
jmp 0x407c2b
test dl, dl
jne case.default.0x4075a8
test ecx, ecx
je case.default.0x4075a8
mov eax, dword [esp + 0x10]
push 0x40c990
add eax, 0x18
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [eax + 4]
add eax, 0xfffffffb
cmp eax, 0xd
ja case.default.0x4075a8
jmp dword [eax*4 + 0x407cb4]
mov eax, dword [esp + 0x10]
mov dl, byte [0x40f484]
mov eax, dword [eax + 0xd8]
add eax, dword [esp + 0x20]
test dl, dl
je 0x406f95
mov al, byte [eax]
jmp 0x406fb6
push 0
push 1
lea ecx, [esp + 0x22]
mov byte [esp + 0x22], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov al, byte [esp + 0x1a]
mov dl, byte [0x40f484]
movzx ecx, al
mov eax, dword [esp + 0x10]
mov dword [eax + 0xdc], ecx
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xd8]
add eax, dword [esp + 0x20]
test dl, dl
je 0x406fd9
mov al, byte [eax]
jmp 0x406ff4
push 0
push 1
lea ecx, [esp + 0x26]
mov byte [esp + 0x26], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov al, byte [esp + 0x1e]
movzx eax, al
push eax
push str._02X
lea eax, [esp + 0xa8]
push eax
call fcn.0040a030
add esp, 0xc
lea eax, [esp + 0xa0]
push eax
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
inc dword [eax + 0xd8]
mov eax, dword [esp + 0x10]
pop edi
pop esi
mov ecx, dword [esp + 0x1b4]
xor ecx, esp
call fcn.0040a67e
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
mov dl, byte [0x40f484]
mov eax, dword [eax + 0xd8]
add eax, dword [esp + 0x20]
test dl, dl
je 0x407066
movzx eax, word [eax]
jmp 0x40708b
push 0
push 2
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], 0
push ecx
push eax
push dword [0x40f488]
call edi
movzx eax, word [esp + 0x24]
mov dl, byte [0x40f484]
movzx ecx, ax
mov eax, dword [esp + 0x10]
mov dword [eax + 0xe0], ecx
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xd8]
add eax, dword [esp + 0x20]
test dl, dl
je 0x4070af
movzx eax, word [eax]
jmp 0x4070ce
push 0
push 2
lea ecx, [esp + 0x34]
mov dword [esp + 0x34], 0
push ecx
push eax
push dword [0x40f488]
call edi
movzx eax, word [esp + 0x2c]
movzx eax, ax
push eax
lea eax, [esp + 0xa4]
push str._04X
push eax
call fcn.0040a030
add esp, 0xc
lea eax, [esp + 0xa0]
push eax
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [eax + 0xd8], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
mov ecx, dword [esp + 0x1b4]
xor ecx, esp
call fcn.0040a67e
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
mov cl, byte [0x40f484]
mov eax, dword [eax + 0xd8]
add eax, dword [esp + 0x20]
test cl, cl
je 0x407140
mov edx, dword [eax]
jmp 0x407164
push 0
push 4
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov edx, dword [esp + 0x24]
mov cl, byte [0x40f484]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xe4], edx
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xd8]
add eax, dword [esp + 0x20]
test cl, cl
je 0x407184
mov eax, dword [eax]
jmp 0x4071a2
push 0
push 4
lea ecx, [esp + 0x34]
mov dword [esp + 0x34], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov eax, dword [esp + 0x2c]
push eax
lea eax, [esp + 0xa4]
push str._08X
push eax
call fcn.0040a030
add esp, 0xc
lea eax, [esp + 0xa0]
push eax
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [eax + 0xd8], 4
mov eax, dword [esp + 0x10]
pop edi
pop esi
mov ecx, dword [esp + 0x1b4]
xor ecx, esp
call fcn.0040a67e
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
mov dl, byte [0x40f484]
mov eax, dword [eax + 0xd8]
add eax, dword [esp + 0x20]
test dl, dl
je 0x407211
mov al, byte [eax]
jmp 0x407232
push 0
push 1
lea ecx, [esp + 0x22]
mov byte [esp + 0x22], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov al, byte [esp + 0x1a]
mov dl, byte [0x40f484]
movzx ecx, al
mov eax, dword [esp + 0x10]
mov dword [eax + 0xdc], ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xd8]
add eax, dword [esp + 0x20]
test dl, dl
je 0x407255
mov al, byte [eax]
jmp 0x407274
push 0
push 1
lea ecx, [esp + 0x26]
mov byte [esp + 0x26], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov al, byte [esp + 0x1e]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0xd8]
movsx eax, al
add ecx, eax
mov eax, dword [esp + 0x20]
inc eax
add eax, ecx
push eax
push str._08X
jmp 0x406ffd
mov eax, dword [esp + 0x10]
mov dl, byte [0x40f484]
mov eax, dword [eax + 0xd8]
add eax, dword [esp + 0x20]
test dl, dl
je 0x4072ae
movzx eax, word [eax]
jmp 0x4072d3
push 0
push 2
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], 0
push ecx
push eax
push dword [0x40f488]
call edi
movzx eax, word [esp + 0x24]
mov dl, byte [0x40f484]
movzx ecx, ax
mov eax, dword [esp + 0x10]
mov dword [eax + 0xe0], ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xd8]
add eax, dword [esp + 0x20]
test dl, dl
je 0x4072f7
movzx eax, word [eax]
jmp 0x40731a
push 0
push 2
lea ecx, [esp + 0x34]
mov dword [esp + 0x34], 0
push ecx
push eax
push dword [0x40f488]
call edi
movzx eax, word [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0xd8]
cwde
add ecx, eax
mov eax, dword [esp + 0x20]
add eax, 2
add eax, ecx
jmp 0x4070d1
mov eax, dword [esp + 0x10]
mov cl, byte [0x40f484]
mov eax, dword [eax + 0xd8]
add eax, dword [esp + 0x20]
test cl, cl
je 0x40734d
mov edx, dword [eax]
jmp 0x407371
push 0
push 4
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov edx, dword [esp + 0x24]
mov cl, byte [0x40f484]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xe4], edx
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xd8]
add eax, dword [esp + 0x20]
test cl, cl
je 0x4073a3
mov ecx, dword [eax]
mov eax, dword [edx + 0xd8]
add ecx, 4
add eax, dword [esp + 0x20]
add eax, ecx
jmp 0x4071a2
push 0
push 4
lea ecx, [esp + 0x34]
mov dword [esp + 0x34], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
add ecx, 4
mov eax, dword [edx + 0xd8]
add eax, dword [esp + 0x20]
add eax, ecx
jmp 0x4071a2
movzx eax, byte [esp + 0x1f]
push dword [eax*4 + 0x40c638]
jmp 0x407c24
movzx eax, byte [esp + 0x1f]
push dword [eax*4 + 0x40c588]
jmp 0x407c24
movzx eax, byte [esp + 0x1f]
push dword [eax*4 + 0x40c5a8]
jmp 0x407c24
movzx eax, byte [esp + 0x1f]
push dword [eax*4 + 0x40c618]
jmp 0x407c24
mov eax, dword [esp + 0x10]
inc dword [eax + 0xd8]
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xd8]
add eax, dword [esp + 0x20]
cmp byte [0x40f484], 0
je 0x407442
mov cl, byte [eax]
jmp 0x407461
push 0
push 1
lea ecx, [esp + 0x22]
mov byte [esp + 0x22], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov cl, byte [esp + 0x1a]
mov edx, dword [esp + 0x10]
mov al, cl
mov byte [esp + 0x1c], cl
shr al, 5
mov byte [esp + 0x1d], al
mov al, cl
shr al, 6
mov byte [esp + 0x1b], al
mov al, cl
shr cl, 3
and al, 7
and cl, 7
mov byte [esp + 0x17], al
movzx eax, cl
mov byte [esp + 0x18], cl
mov dword [edx + 0xb8], eax
cmp byte [esp + 0x1b], 0
je 0x4074aa
movzx eax, byte [esp + 0x18]
push dword [eax*4 + 0x40c5a8]
jmp 0x407c24
movzx eax, byte [esp + 0x17]
sub eax, 4
je 0x407499
sub eax, 1
jne 0x407499
movzx eax, byte [esp + 0x1c]
sub eax, 5
cdq
and edx, 7
add eax, edx
sar eax, 3
push dword [eax*4 + 0x40c5a8]
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
inc dword [eax + 0xd8]
mov eax, dword [esp + 0x10]
mov dword [eax + 4], 0x11
mov eax, dword [esp + 0x10]
pop edi
pop esi
mov ecx, dword [esp + 0x1b4]
xor ecx, esp
call fcn.0040a67e
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x18]
mov dword [eax + 0xbc], ecx
cmp byte [esp + 0x1b], 0
jne 0x407499
movzx eax, byte [esp + 0x17]
sub eax, 4
je 0x407499
sub eax, 1
jne 0x407499
movzx eax, byte [esp + 0x1c]
sub eax, 5
cdq
and edx, 7
add eax, edx
sar eax, 3
push dword [eax*4 + 0x40c5a8]
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
mov dword [eax + 4], 0x11
jmp 0x407c33
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x40]
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
call fcn.00407d00
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x17]
mov dword [eax + 0xbc], ecx
movzx eax, byte [esp + 0x1b]
cmp eax, 3
ja case.default.0x4075a8
jmp dword [eax*4 + 0x407cec]
cmp dword [esp + 0x2c], 0x13
mov edi, dword [esp + 0x10]
je 0x4076d5
lea eax, [edi + 0x100]
mov edx, str.qword_ptr
mov dword [esp + 0x34], eax
mov ecx, eax
nop
mov al, byte [ecx]
cmp al, byte [edx]
mov byte [esp + 0x28], al
mov eax, dword [esp + 0x34]
jne 0x407606
cmp byte [esp + 0x28], 0
je 0x407602
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
mov byte [esp + 0x28], al
mov eax, dword [esp + 0x34]
jne 0x407606
add ecx, 2
add edx, 2
cmp byte [esp + 0x28], 0
jne 0x4075d0
xor ecx, ecx
jmp 0x40760b
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x4076d5
cmp dword [esp + 0x2c], 9
je 0x4076c1
mov edx, str.byte_ptr
mov ecx, eax
mov al, byte [ecx]
cmp al, byte [edx]
mov byte [esp + 0x28], al
mov eax, dword [esp + 0x34]
jne 0x40765b
cmp byte [esp + 0x28], 0
je 0x407657
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
mov byte [esp + 0x28], al
mov eax, dword [esp + 0x34]
jne 0x40765b
add ecx, 2
add edx, 2
cmp byte [esp + 0x28], 0
jne 0x407625
xor ecx, ecx
jmp 0x407660
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x4076c1
cmp dword [esp + 0x2c], 0xa
je 0x4076ad
mov ecx, str.word_ptr
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x407690
test dl, dl
je 0x40768c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x407690
add eax, 2
add ecx, 2
test dl, dl
jne 0x407670
xor eax, eax
jmp 0x407695
sbb eax, eax
or eax, 1
test eax, eax
je 0x4076ad
movzx eax, byte [esp + 0x17]
push dword [eax*4 + 0x40c5a8]
lea eax, [edi + 0x18]
jmp 0x407c2b
movzx eax, byte [esp + 0x17]
push dword [eax*4 + 0x40c588]
lea eax, [edi + 0x18]
jmp 0x407c2b
movzx eax, byte [esp + 0x17]
push dword [eax*4 + 0x40c638]
lea eax, [edi + 0x18]
jmp 0x407c2b
movzx eax, byte [esp + 0x17]
push dword [eax*4 + 0x40c618]
lea eax, [edi + 0x18]
jmp 0x407c2b
mov eax, dword [esp + 0x10]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 0xf0
push eax
call edi
test eax, eax
jle 0x40770b
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0xf0]
jmp 0x407725
mov eax, dword [esp + 0x10]
add eax, 0x100
push eax
call edi
test eax, eax
jle 0x40774b
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0x100]
push eax
lea eax, [ecx + 0x18]
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
add eax, 0x18
push 0x40c984
push 0x80
push eax
call esi
add esp, 0xc
mov eax, dword [esp + 0x10]
push 0x40c238
add eax, 0x18
push 0x80
push eax
call esi
mov al, byte [esp + 0x23]
add esp, 0xc
cmp al, 4
je 0x407779
movzx eax, al
push dword [eax*4 + 0x40c5a8]
jmp 0x407b8b
lea ecx, [esp + 0x40]
call fcn.00407d00
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x17]
mov dword [eax + 0xbc], ecx
movzx eax, byte [esp + 0x17]
push dword [eax*4 + 0x40c5a8]
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
add eax, 0x18
push 0x40c968
push 0x80
push eax
call esi
add esp, 0xc
jmp 0x407b11
mov eax, dword [esp + 0x10]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 0xf0
push eax
call edi
test eax, eax
jle 0x4077ed
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0xf0]
jmp 0x407807
mov eax, dword [esp + 0x10]
add eax, 0x100
push eax
call edi
test eax, eax
jle 0x40782d
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0x100]
push eax
lea eax, [ecx + 0x18]
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
add eax, 0x18
push 0x40c984
push 0x80
push eax
call esi
add esp, 0xc
mov eax, dword [esp + 0x10]
push 0x40c238
add eax, 0x18
push 0x80
push eax
call esi
mov al, byte [esp + 0x23]
add esp, 0xc
cmp al, 4
je 0x40785b
movzx eax, al
push dword [eax*4 + 0x40c5a8]
jmp 0x407937
lea ecx, [esp + 0x40]
call fcn.00407d00
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x17]
mov dword [eax + 0xbc], ecx
movzx eax, byte [esp + 0x17]
push dword [eax*4 + 0x40c5a8]
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
add esp, 0xc
test byte [esp + 0x1d], 1
je 0x4078a6
mov al, byte [esp + 0x1c]
and al, 0x1f
cmp al, 8
jb 0x407949
mov eax, dword [esp + 0x10]
push 0x40c968
add eax, 0x18
push 0x80
push eax
call esi
movzx eax, byte [esp + 0x24]
add esp, 0xc
push dword [eax*4 + 0x40c5a8]
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov cl, byte [esp + 0x27]
add esp, 0xc
test cl, cl
je 0x407949
cmp cl, 1
jne 0x4078ef
mov eax, 2
jmp 0x407908
cmp cl, 2
jne 0x4078fb
mov eax, 4
jmp 0x407908
xor eax, eax
cmp cl, 3
mov ecx, 8
cmove eax, ecx
push eax
lea eax, [esp + 0x2c]
push 0x40c980
push eax
call fcn.0040a050
mov eax, dword [esp + 0x1c]
add esp, 0xc
add eax, 0x18
push 0x40c698
push 0x80
push eax
call esi
add esp, 0xc
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
add esp, 0xc
lea ecx, [esp + 0x74]
call fcn.00407d90
jmp 0x407c1f
mov eax, dword [esp + 0x10]
add eax, 0xf0
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x407977
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0xf0]
jmp 0x407995
mov eax, dword [esp + 0x10]
add eax, 0x100
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x4079bb
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0x100]
push eax
lea eax, [ecx + 0x18]
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
add eax, 0x18
push 0x40c984
push 0x80
push eax
call esi
add esp, 0xc
mov eax, dword [esp + 0x10]
push 0x40c238
add eax, 0x18
push 0x80
push eax
call esi
movzx ecx, byte [esp + 0x23]
add esp, 0xc
mov eax, ecx
sub eax, 4
je 0x407a05
sub eax, 1
mov eax, dword [esp + 0x10]
je 0x407baf
push dword [ecx*4 + 0x40c5a8]
add eax, 0x18
push 0x80
push eax
call esi
add esp, 0xc
jmp 0x407c1f
lea ecx, [esp + 0x40]
call fcn.00407d00
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x17]
mov dword [eax + 0xbc], ecx
mov al, byte [esp + 0x17]
cmp al, 5
je 0x407b06
movzx eax, al
push dword [eax*4 + 0x40c5a8]
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
add esp, 0xc
test byte [esp + 0x1d], 1
je 0x407a5a
mov al, byte [esp + 0x1c]
and al, 0x1f
cmp al, 8
jb 0x407c1f
mov eax, dword [esp + 0x10]
push 0x40c968
add eax, 0x18
push 0x80
push eax
call esi
movzx eax, byte [esp + 0x24]
add esp, 0xc
push dword [eax*4 + 0x40c5a8]
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov cl, byte [esp + 0x27]
add esp, 0xc
test cl, cl
je 0x407c1f
cmp cl, 1
jne 0x407aa7
mov eax, 2
jmp 0x407ac0
cmp cl, 2
jne 0x407ab3
mov eax, 4
jmp 0x407ac0
xor eax, eax
cmp cl, 3
mov ecx, 8
cmove eax, ecx
push eax
lea eax, [esp + 0x2c]
push 0x40c980
push eax
call fcn.0040a050
mov eax, dword [esp + 0x1c]
add esp, 0xc
add eax, 0x18
push 0x40c698
push 0x80
push eax
call esi
add esp, 0xc
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
add esp, 0xc
jmp 0x407c1f
test byte [esp + 0x1d], 1
jne 0x407bab
movzx eax, byte [esp + 0x18]
push dword [eax*4 + 0x40c5a8]
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov cl, byte [esp + 0x27]
add esp, 0xc
test cl, cl
je 0x407b9d
cmp cl, 1
jne 0x407b43
mov eax, 2
jmp 0x407b5c
cmp cl, 2
jne 0x407b4f
mov eax, 4
jmp 0x407b5c
xor eax, eax
cmp cl, 3
mov ecx, 8
cmove eax, ecx
push eax
lea eax, [esp + 0x2c]
push 0x40c980
push eax
call fcn.0040a050
mov eax, dword [esp + 0x1c]
add esp, 0xc
add eax, 0x18
push 0x40c698
push 0x80
push eax
call esi
add esp, 0xc
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
add esp, 0xc
lea ecx, [esp + 0x68]
call fcn.00407e60
jmp 0x407c1f
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xd8]
add eax, dword [esp + 0x20]
cmp byte [0x40f484], 0
je 0x407bc6
mov eax, dword [eax]
jmp 0x407be4
push 0
push 4
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], 0
push ecx
push eax
push dword [0x40f488]
call edi
mov eax, dword [esp + 0x24]
push eax
lea eax, [esp + 0xa4]
push str._08X
push eax
call fcn.0040a030
add esp, 0xc
lea eax, [esp + 0xa0]
push eax
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [eax + 0xd8], 4
push 0x40c98c
mov eax, dword [esp + 0x14]
add eax, 0x18
push 0x80
push eax
call esi
add esp, 0xc
mov ecx, dword [esp + 0x1bc]
mov eax, dword [esp + 0x10]
pop edi
pop esi
xor ecx, esp
call fcn.0040a67e
mov esp, ebp
pop ebp
ret
call fcn.0040aa65
nop
push esp
pop esp
inc eax
add ch, dl
pop esp
inc eax
add byte [edx], al
outsd dx, dword [esi]
inc eax
add byte [edx], al
outsd dx, dword [esi]
inc eax
add byte [edx], al
outsd dx, dword [esi]
inc eax
add byte [esi + 0x625c0040], al
inc eax
add byte [esi + 0x62], dh
inc eax
add byte [eax - 0x3bffbf9e], dl
bound eax, qword [eax]
mov ah, 0x63
inc eax
add byte [esp + 0x5f410040], ah
inc eax
add byte [edx + 0x60], cl
inc eax
add byte [edi + 0x61], dl
inc eax
add bl, ah
pop esp
inc eax
add byte [ecx + 0x7a00405d], ch
pop esi
inc eax
add byte [edx - 0x6bffbf9e], ch
inc eax
add byte [edi + 0x6b], bl
inc eax
add byte [ecx + 0x30004069], bl
push 0x66e60040
inc eax
add byte [eax + 0x75], bh
inc eax
add cl, bl
jae 0x407cfb
add dl, ch
jae 0x407cff
add bl, bh
jae 0x407d03
add byte [0x1d004074], bl
je 0x407d0b
add byte [eax], dl
jne 0x407d0f
add ch, dh
jno 0x407d13
add byte [ecx + 0x31004072], dl
jae 0x407d1b
add byte [ecx + 0x6f], bh
inc eax
add byte [ecx + 0x70], cl
inc eax
add byte [ecx + esi*2], ah
inc eax
add byte [esp + esi*2], cl
inc eax
add byte [edi + 0x79], dl
inc eax
add bl, cl
ja 0x407d33
add cl, ch
jbe 0x407d37
add byte [edi - 0x33ffbf8b], ch
add ah, cl
int3
int3
push esi
adc byte [ebx - 0x277f7500], cl
add byte [eax], al
add byte [ebx], al
add al, byte [eax + 0x40f4843d]
add byte [eax], al
inc eax
add byte [eax], al
mov ah, dh
inc eax
add bh, bh
adc eax, sym.imp.KERNEL32.dll_ReadProcessMemory