Function at 0x404530
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x100
mov eax, dword [esp + 0x120]
push ebx
mov bl, byte [esp + 0x118]
push ebp
mov ebp, dword [esp + 0x120]
push esi
push edi
mov dword [esp + 0x28], 0x3fff
cmp eax, 0xffc3d44f
je 0x404571
cmp eax, 0xffc3d44e
je 0x404571
mov byte [esp + 0x13], 0
cmp eax, 0xffc3d44d
jne 0x404576
mov byte [esp + 0x13], 1
mov ecx, dword [0x4c189c]
test ecx, ecx
jne 0x40458d
lea edi, [esp + 0x3c]
mov dword [esp + 0x24], edi
jmp 0x404648
mov eax, dword [0x4c18a0]
mov edi, eax
imul edi, edi, 0xd4
inc eax
add edi, ecx
mov dword [esp + 0x24], edi
mov dword [0x4c18a0], eax
cmp eax, dword [0x4bd3c4]
jl 0x4045b8
mov dword [0x4c18a0], 0
mov al, byte [esp + 0x12c]
mov byte [edi], bl
mov byte [edi + 6], al
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
sub ecx, dword [0x4c3c2c]
mov dword [0x4c18a4], eax
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
jns 0x4045e7
fadd dword [0x4b7880]
fdiv qword [0x4b7878]
mov dword [0x4c3c2c], eax
fstp dword [edi + 8]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
je 0x404629
cmp esi, dword [0x4c18a8]
je 0x404621
mov eax, dword [0x4c0d1c]
push esi
lea edx, [edi + 0xc]
push edx
push 0x418
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x404642
xor ecx, ecx
mov word [edi + 0xc], cx
jmp 0x404642
mov eax, 0x49e064
lea edx, [edi + 0xc]
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x404633
mov dword [0x4c18a8], esi
cmp bl, 0xe7
jne 0x404672
mov edx, dword [esp + 0x120]
mov ax, word [edx + 4]
mov ecx, 0x55
mov word [edi + 2], ax
mov word [edi + 4], cx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x100
ret
add bl, 0x64
mov word [edi + 2], bp
cmp bl, 3
ja 0x404687
xor ebp, ebp
mov dword [esp + 0x128], ebp
mov edx, dword [esp + 0x114]
cmp edx, dword [0x4c0e50]
jne 0x4046c7
mov bl, byte [esp + 0x134]
and bl, 1
jne 0x404841
cmp byte [esp + 0x12c], bl
movzx ecx, byte [esp + 0x124]
setne al
dec al
and al, 0x80
mov byte [ecx + 0x4c0d40], al
jmp 0x404841
mov ebx, dword [esp + 0x134]
shr ebx, 4
and bl, 1
test ebp, 0x100
jne case.0x40470e.13
push 0x90
call dword [sym.imp.USER32.dll_GetKeyState]
test al, 1
je case.0x40470e.13
movzx eax, byte [esp + 0x124]
add eax, 0xfffffff4
cmp eax, 0x62
ja case.0x40470e.13
movzx edx, byte [eax + 0x4062ac]
jmp dword [edx*4 + 0x40627c]
cmp byte [esp + 0x12c], 0
sete al
mov byte [0x4bfc0c], al
jmp case.0x40470e.13
cmp byte [esp + 0x12c], 0
sete cl
mov byte [0x4bfc0d], cl
jmp case.0x40470e.13
cmp byte [esp + 0x12c], 0
sete dl
mov byte [0x4bfc0e], dl
jmp case.0x40470e.13
cmp byte [esp + 0x12c], 0
sete al
mov byte [0x4bfc0f], al
jmp case.0x40470e.13
cmp byte [esp + 0x12c], 0
sete cl
mov byte [0x4bfc10], cl
jmp case.0x40470e.13
cmp byte [esp + 0x12c], 0
sete dl
mov byte [0x4bfc11], dl
jmp case.0x40470e.13
cmp byte [esp + 0x12c], 0
sete al
mov byte [0x4bfc12], al
jmp case.0x40470e.13
cmp byte [esp + 0x12c], 0
sete cl
mov byte [0x4bfc13], cl
jmp case.0x40470e.13
cmp byte [esp + 0x12c], 0
sete dl
mov byte [0x4bfc14], dl
jmp case.0x40470e.13
cmp byte [esp + 0x12c], 0
sete al
mov byte [0x4bfc15], al
jmp case.0x40470e.13
cmp byte [esp + 0x12c], 0
sete cl
mov byte [0x4bfc16], cl
movzx esi, byte [esp + 0x124]
mov eax, dword [0x4c18c0]
lea edx, [esi + esi*8]
shl edx, 5
cmp byte [edx + eax + 4], 0
jne 0x404841
test byte [esp + 0x134], 0x10
jne 0x404841
mov ecx, dword [esp + 0x12c]
mov al, byte [esp + 0x124]
push ecx
call fcn.00407730
add esp, 4
test al, al
je 0x404841
cmp byte [esp + 0x12c], 0
setne dl
dec dl
and dl, 0x80
mov byte [esi + 0x4c0d40], dl
cmp byte [esp + 0x13], 0
je 0x40484c
mov al, 0x69
jmp 0x404858
neg bl
sbb bl, bl
and bl, 0x41
add bl, 0x20
mov al, bl
cmp byte [0x4c0d3c], 0
cbw
mov word [edi + 4], ax
je 0x4048b9
mov al, byte [esp + 0x124]
cmp al, 0x5b
je 0x404876
cmp al, 0x5c
jne 0x4048b9
cmp byte [esp + 0x12c], 0
jne 0x4048b9
mov ecx, dword [esp + 0x124]
mov eax, dword [esp + 0x120]
push 0
push SysReAllocString
push 0x3fff
push edi
push ebp
push ecx
mov ecx, dword [esp + 0x12c]
xor bl, bl
call fcn.004063a0
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret
cmp byte [0x4bfc2f], 0
je 0x404978
cmp byte [esp + 0x124], 0x1b
jne 0x404978
cmp byte [esp + 0x12c], 0
jne 0x404978
push 0
push str.32771
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x404978
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
jne 0x404978
push 0xffc3d44d
push 0
push 0
push 0
push 0x1b
push 0
call fcn.0040e9a0
mov dl, byte [0x4c0d19]
push 0xffc3d44d
shr dl, 3
push 0
and dl, 1
or dl, 0xa4
push 0
movzx eax, dl
push 0
push eax
push 1
call fcn.0040e9a0
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x144]
push 0
push SysReAllocString
push 0x3fff
push edi
push ebp
push 0x1b
xor bl, bl
call fcn.004063a0
add esp, 0x48
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret
mov edx, dword [0x4c18c4]
movzx eax, bp
lea ecx, [eax + eax*8]
shl ecx, 5
mov dword [esp + 0x34], eax
lea eax, [ecx + edx]
mov edx, dword [0x4c0e4c]
mov cl, byte [eax + 0x12]
mov byte [esp + 0x2f], cl
cmp dword [esp + 0x114], edx
jne 0x4049b0
test cl, cl
je 0x4049b0
mov esi, eax
mov dword [esp + 0x1c], eax
jmp 0x4049c8
movzx eax, byte [esp + 0x124]
lea esi, [eax + eax*8]
shl esi, 5
add esi, dword [0x4c18c0]
mov dword [esp + 0x1c], esi
cmp byte [esp + 0x13], 0
je 0x404a35
cmp dword [esp + 0x130], 0xffc3d44e
jne 0x404a00
cmp byte [esp + 0x12c], 0
je 0x404a00
cmp dword [0x4bfc30], esi
jne 0x404a00
mov byte [esi + 0xc], 0
mov byte [esi + 0xf], 0
mov dword [0x4bfc30], 0
push 0
mov eax, dword [esp + 0x130]
push 0x3fff
push edi
push eax
mov ecx, dword [esp + 0x134]
mov edx, dword [esp + 0x12c]
mov eax, dword [esp + 0x128]
push ecx
mov ecx, dword [esp + 0x128]
push edx
push eax
push ecx
jmp 0x40625e
cmp byte [esp + 0x12c], 0
jne 0x404a4c
mov eax, 0x3fff
mov byte [esi + 0x10], 0
mov word [esi + 6], ax
mov ebx, dword [esp + 0x114]
cmp ebx, edx
jne 0x404b0f
cmp byte [esp + 0x12c], 0
je 0x404b6c
cmp byte [0x4bfc37], 0
mov al, byte [esp + 0x124]
je 0x404a7d
cmp al, 0x5b
je 0x404aac
cmp byte [0x4bfc36], 0
je 0x404a8a
cmp al, 0x5c
je 0x404aac
cmp byte [0x4bfc35], 0
je 0x404a97
cmp al, 0xa4
je 0x404aac
cmp byte [0x4bfc34], 0
je 0x404b6c
cmp al, 0xa5
jne 0x404b6c
movzx eax, al
add eax, 0xffffffa5
cmp eax, 0x4a
ja case.0x404abe.93
movzx ecx, byte [eax + 0x406324]
jmp dword [ecx*4 + 0x406310]
mov byte [0x4bfc37], 0
jmp case.0x404abe.93
mov byte [0x4bfc36], 0
jmp case.0x404abe.93
mov byte [0x4bfc35], 0
jmp case.0x404abe.93
mov byte [0x4bfc34], 0
test byte [0x4c0d19], 3
jne 0x404b6c
movzx edx, byte [0x4bd381]
push 0xffc3d44d
push 0
push 0
push 0
push edx
push 2
call fcn.0040e9a0
add esp, 0x18
jmp 0x404b6c
mov al, byte [esp + 0x124]
test al, al
jne 0x404b31
mov eax, dword [esp + 0x12c]
push 0
push 0x3fff
push edi
push eax
push 0
jmp 0x40624d
cmp al, 1
je 0x404b39
cmp al, 2
jne 0x404b6c
cmp dword [0x4c0e94], 0
jne 0x406229
push 0
push str.32768
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x404b6c
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x4c2fa4]
je 0x406229
mov edx, dword [0x4bfc30]
mov ecx, dword [0x4c18c0]
test edx, edx
je 0x404ba8
cmp edx, esi
je 0x404ba8
cmp byte [esp + 0x12c], 0
jne 0x404ba8
cmp ebx, dword [0x4c0e4c]
jne 0x404b9c
xor eax, eax
cmp byte [esi + 4], al
sete al
jmp 0x404ba0
movzx eax, byte [edx + 4]
test eax, eax
je 0x404ba8
mov byte [edx + 0x11], 1
cmp byte [esi + 8], 0
jne 0x404be1
cmp byte [esi + 9], 0
jne 0x404be1
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x124]
mov edx, dword [esp + 0x11c]
push 0
push 0x3fff
push edi
push eax
mov eax, dword [esp + 0x128]
push ecx
push edx
push eax
jmp 0x40625d
cmp byte [esp + 0x12c], 0
mov byte [esp + 0x33], 0
mov dword [esp + 0x14], 0x3fff
mov dword [esp + 0x20], 0
je 0x404c3b
mov al, byte [esi + 0xf]
mov dl, byte [esi + 0xc]
mov byte [esp + 0x12], al
movzx eax, word [esi + 6]
mov byte [esp + 0x1b], dl
mov edx, 0x3fff
mov byte [esi + 0xf], 0
cmp ax, dx
je 0x404c2d
mov dword [esp + 0x14], eax
mov byte [esp + 0x33], 1
mov word [esi + 6], dx
mov edx, dword [0x4bfc30]
cmp byte [esp + 0x12c], 0
sete al
mov byte [esi + 0xc], al
mov eax, dword [0x4c0e4c]
mov byte [esp + 0x11], 0
cmp ebx, eax
jne 0x404cc4
cmp byte [esi + 4], 0
je 0x404ce7
cmp byte [ecx + 0xb64c], 0
jne 0x404c6f
cmp byte [ecx + 0xb76c], 0
jne 0x404c6f
xor eax, eax
jmp 0x404c74
mov eax, 1
cmp byte [ecx + 0xb88c], 0
mov byte [ecx + 0x132c], al
jne 0x404c90
cmp byte [ecx + 0xb9ac], 0
jne 0x404c90
xor eax, eax
jmp 0x404c95
mov eax, 1
cmp byte [ecx + 0xb40c], 0
mov byte [ecx + 0x144c], al
jne 0x404cb7
cmp byte [ecx + 0xb52c], 0
jne 0x404cb7
xor eax, eax
mov byte [ecx + 0x120c], al
jmp 0x404ce7
mov eax, 1
mov byte [ecx + 0x120c], al
jmp 0x404ce7
test eax, eax
jne 0x404ce7
push 1
call fcn.00410f70
mov edx, dword [0x4bfc30]
add esp, 4
mov byte [0x4c0d1a], al
mov byte [0x4c0d19], al
mov byte [esp + 0x11], 1
mov eax, dword [esi]
test eax, eax
je 0x404cf7
cmp dword [eax], 7
mov byte [esp + 0x13], 1
je 0x404cfc
mov byte [esp + 0x13], 0
mov al, byte [esi + 8]
test al, al
je 0x404e86
cmp byte [esp + 0x12c], 0
jne 0x404e86
test edx, edx
je 0x404d27
cmp byte [esi + 9], 0
je 0x404d27
cmp esi, edx
jne 0x404e86
cmp al, 1
jne 0x404d54
cmp byte [esp + 0x2f], 0
mov eax, dword [esp + 0x34]
jne 0x404d3e
movzx eax, byte [esp + 0x124]
mov ecx, dword [esp + 0x2f]
push ecx
push eax
call fcn.004099d0
add esp, 8
test al, al
je 0x404d54
mov bl, 1
jmp 0x404d67
xor bl, bl
cmp esi, dword [0x4bfc30]
je 0x404d67
mov dword [0x4bfc30], esi
mov byte [esi + 0x11], bl
cmp byte [esi + 9], 0
je 0x404e1d
cmp byte [esp + 0x11], 0
jne 0x404d87
push 1
mov byte [esp + 0x15], 1
call fcn.00410f70
add esp, 4
mov al, byte [esi + 4]
mov cl, byte [0x4c0d1a]
test al, al
je 0x404d98
not al
and cl, al
test cl, cl
jne 0x404da0
test bl, bl
je 0x404e1d
mov edx, dword [0x4c0e4c]
cmp dword [esp + 0x114], edx
jne 0x404dcc
cmp byte [esp + 0x2f], 0
je 0x404dcc
movzx eax, cl
mov ecx, dword [0x4c18b8]
shl eax, 8
add eax, dword [esp + 0x34]
movzx ecx, word [ecx + eax*2]
jmp 0x404de6
movzx eax, byte [esp + 0x124]
movzx edx, cl
mov ecx, dword [0x4c18b4]
shl edx, 8
add edx, eax
movzx ecx, word [ecx + edx*2]
mov dword [esp + 0x14], ecx
test ecx, 0x4000
je 0x404df8
mov word [esi + 6], cx
jmp 0x404e2b
mov edx, dword [0x4be5dc]
mov eax, ecx
and eax, 0x3fff
cmp ax, word [edx]
jae 0x404e21
mov edx, dword [0x4c18bc]
movzx eax, ax
mov ax, word [edx + eax*2]
mov word [esi + 6], ax
jmp 0x404e21
mov ecx, dword [esp + 0x14]
mov edx, 0x3fff
cmp cx, dx
jne 0x404e86
test bl, bl
je 0x404e3c
or byte [esi + 0xb], 8
mov eax, 0x23
mov word [edi + 4], ax
cmp byte [esi + 4], 0
jne 0x404e57
test byte [esi + 0xb], 1
jne 0x404e57
cmp byte [esp + 0x13], 0
jne 0x404e57
test bl, bl
je 0x404880
push 0
push 0x3fff
push edi
push 0
mov edx, dword [esp + 0x134]
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x128]
push edx
mov edx, dword [esp + 0x128]
push eax
push ecx
push edx
jmp 0x40625e
cmp byte [esi + 9], 0
mov edx, dword [esp + 0x12c]
mov byte [esp + 0x1a], 0
je 0x404f31
test dl, dl
je 0x404f31
cmp dword [0x4bfc30], esi
jne 0x404ebd
cmp byte [esp + 0x12], 0
je 0x404f31
mov dword [0x4bfc30], 0
cmp byte [esi + 0xa], 0
jne 0x404f2c
mov al, byte [esi + 0xb]
test al, 8
je 0x404ed3
xor cl, cl
and al, 0xf7
mov byte [esi + 0xb], al
jmp 0x404ed5
mov cl, 1
cmp byte [esp + 0x12], 0
je 0x404f1e
test cl, cl
je 0x404f1e
push 0
push SysReAllocString
push 0x3fff
push edi
push ebp
mov eax, dword [esp + 0x138]
push eax
mov ecx, dword [esp + 0x12c]
mov bl, byte [esp + 0x144]
mov eax, dword [esp + 0x138]
call fcn.004063a0
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret
push 0
push 0x3fff
push edi
push edx
jmp 0x404a10
mov byte [esp + 0x1a], 1
cmp byte [esi + 8], 0
je 0x4050f4
test dl, dl
je 0x4050f4
cmp dword [0x4bfc30], esi
jne 0x404f55
mov dword [0x4bfc30], 0
cmp byte [esi + 0xd], 0
je 0x404f76
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 1
mov byte [esi + 0xd], 0
call fcn.0040e9a0
add esp, 0x18
cmp byte [esi + 0xe], 0
je 0x404f97
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
mov byte [esi + 0xe], 0
call fcn.0040e9a0
add esp, 0x18
mov ebx, dword [esp + 0x14]
mov edx, 0x3fff
cmp bx, dx
jne 0x404fb6
mov al, byte [esi + 0xb]
test al, 8
je 0x404fb6
and al, 0xf7
mov byte [esi + 0xb], al
jmp 0x404a00
mov cl, byte [esp + 0x13]
mov al, byte [esi + 0x11]
test cl, cl
je 0x405064
cmp al, 2
jne 0x40502b
mov esi, dword [esp + 0x124]
push 0xffc3d44e
push 0
push 0
push ebp
push esi
push 1
call fcn.0040e9a0
push 0xffc3d44d
push 0
push 0
push ebp
push esi
push 2
call fcn.0040e9a0
push 0
push SysReAllocString
push 0x3fff
push edi
push ebp
mov bl, byte [esp + 0x170]
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x158]
push esi
call fcn.004063a0
add esp, 0x48
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret
cmp al, 1
jne 0x40509d
mov edx, dword [esp + 0x12c]
mov eax, dword [esp + 0x124]
mov ecx, dword [esp + 0x11c]
push 0
push 0x3fff
push edi
push edx
mov edx, dword [esp + 0x128]
push eax
mov eax, dword [esp + 0x128]
push ecx
push edx
push eax
jmp 0x40625e
test al, al
je 0x40509d
cmp bx, dx
jne 0x40509d
cmp byte [esi + 4], 0
je 0x40507e
cmp al, 2
jne 0x40502f
push 1
jmp 0x404a02
test byte [esi + 0xb], 1
push 0
je 0x404ee2
mov ecx, dword [esp + 0x130]
push 0x3fff
push edi
push ecx
jmp 0x404e61
cmp byte [esi + 9], 0
jne 0x4050d2
cmp byte [esi + 4], 0
jne 0x40502f
test byte [esi + 0xb], 1
jne 0x40502f
test cl, cl
jne 0x40502f
mov ecx, dword [esp + 0x124]
push 0
push SysReAllocString
push 0x3fff
push edi
push ebp
push ecx
jmp 0x404ef6
cmp byte [esp + 0x1b], 0
jne 0x4050f8
cmp byte [esi + 0xa], 0
jne 0x4050f8
mov ecx, dword [esp + 0x12c]
push 0
push 0x3fff
push edi
push ecx
jmp 0x404e61
mov ebx, dword [esp + 0x14]
cmp byte [esp + 0x11], 0
jne 0x405113
mov eax, 0x3fff
cmp bx, ax
jne 0x405113
push 1
call fcn.00410f70
add esp, 4
cmp dword [0x4bfc30], 0
mov byte [esp + 0x12], 0
je 0x405817
cmp byte [esp + 0x12c], 0
je 0x40513d
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + 0xa], 0
je 0x405817
mov edx, 0x3fff
cmp bx, dx
jne 0x405aa6
mov edi, dword [esp + 0x1c]
xor ebp, ebp
cmp byte [edi + 0x13], 0
jbe 0x4051e2
mov edx, dword [0x4c18c0]
lea esi, [edi + 0x16]
mov cl, byte [esi]
movzx eax, cl
lea eax, [eax + eax*8]
shl eax, 5
cmp byte [eax + edx + 0xc], 0
je 0x4051b8
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x4051a2
cmp byte [esp + 0x12c], 0
jne 0x4051c6
mov ecx, 0x3fff
mov word [edi + 6], ax
cmp bx, cx
je 0x4051b8
mov dword [esp + 0x14], ebx
jmp 0x405286
cmp byte [esp + 0x12c], 0
mov edx, dword [0x4c18c0]
jne 0x4051b8
mov ebx, eax
mov byte [esp + 0x11], cl
movzx eax, byte [edi + 0x13]
inc ebp
add esi, 4
cmp ebp, eax
jl 0x405164
jmp 0x4051d0
mov cl, byte [esi]
movzx ebx, word [esi + 2]
mov byte [esp + 0x11], cl
mov edx, 0x3fff
mov dword [esp + 0x14], ebx
cmp bx, dx
jne 0x405280
xor ebp, ebp
cmp byte [edi + 0x14], 0
jbe 0x405263
lea esi, [edi + 0xde]
movzx ecx, word [esi]
mov edx, dword [0x4c18c4]
mov eax, ecx
lea eax, [eax + eax*8]
shl eax, 5
cmp byte [eax + edx + 0xc], 0
je 0x405309
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x4052f9
cmp byte [esp + 0x12c], 0
jne 0x40531b
mov word [edi + 6], ax
mov eax, 0x3fff
cmp bx, ax
je 0x405309
mov dword [esp + 0x14], ebx
movzx eax, word [esp + 0x38]
lea eax, [eax + eax*8]
shl eax, 5
add eax, dword [0x4c18c4]
mov dword [0x4bfc30], eax
mov edx, 0x3fff
cmp bx, dx
jne case.default.0x405279
movzx eax, byte [esp + 0x124]
add eax, 0xffffff60
cmp eax, 5
ja case.default.0x405279
jmp dword [eax*4 + 0x406370]
mov edx, dword [0x4c18c0]
movzx ecx, byte [esp + 0x11]
mov eax, ecx
sub eax, 0x10
je 0x4052dd
dec eax
je 0x4052c1
dec eax
je 0x4052a8
lea ecx, [ecx + ecx*8]
shl ecx, 5
add ecx, edx
mov dword [0x4bfc30], ecx
jmp 0x405255
xor eax, eax
cmp byte [edx + 0xb9ac], al
setne al
lea eax, [eax + eax*8 + 0x5c4]
shl eax, 5
add eax, edx
jmp 0x405250
xor eax, eax
cmp byte [edx + 0xb76c], al
setne al
lea eax, [eax + eax*8 + 0x5b2]
shl eax, 5
add eax, edx
jmp 0x405250
xor eax, eax
cmp byte [edx + 0xb52c], al
setne al
lea eax, [eax + eax*8 + 0x5a0]
shl eax, 5
add eax, edx
jmp 0x405250
cmp byte [esp + 0x12c], 0
jne 0x405309
mov ebx, eax
mov dword [esp + 0x38], ecx
movzx edx, byte [edi + 0x14]
inc ebp
add esi, 4
cmp ebp, edx
jl 0x4051f0
jmp 0x405326
movzx eax, word [esi]
movzx ebx, word [esi + 2]
mov dword [esp + 0x38], eax
mov ecx, 0x3fff
mov dword [esp + 0x14], ebx
cmp bx, cx
je 0x405263
jmp 0x40523f
mov al, 0x11
jmp 0x405347
mov al, 0x12
jmp 0x405347
mov al, 0x10
mov ecx, dword [0x4c18c0]
movzx eax, al
lea edx, [eax + eax*8]
shl edx, 5
movzx ebp, byte [edx + ecx + 0x13]
add edx, ecx
xor edi, edi
test ebp, ebp
jle 0x4053e3
lea esi, [edx + 0x16]
lea ebx, [ebx]
mov cl, byte [esi]
mov ebx, dword [0x4c18c0]
movzx eax, cl
lea eax, [eax + eax*8]
shl eax, 5
cmp byte [eax + ebx + 0xc], 0
je 0x4053c7
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x4053b5
cmp byte [esp + 0x12c], 0
jne 0x4053d5
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov word [ecx + 6], ax
mov eax, 0x3fff
cmp bx, ax
jne 0x4053f1
jmp 0x4053cb
cmp byte [esp + 0x12c], 0
jne 0x4053c7
mov dword [esp + 0x14], eax
mov byte [esp + 0x11], cl
mov ebx, dword [esp + 0x14]
inc edi
add esi, 4
cmp edi, ebp
jl 0x405370
jmp 0x4053e3
movzx ebx, word [esi + 2]
mov cl, byte [esi]
mov dword [esp + 0x14], ebx
mov byte [esp + 0x11], cl
mov eax, 0x3fff
cmp bx, ax
je 0x40547d
movzx ecx, byte [esp + 0x11]
mov eax, ecx
sub eax, 0x10
je 0x40545e
dec eax
je 0x40543c
dec eax
je 0x40541a
lea ecx, [ecx + ecx*8]
shl ecx, 5
add ecx, dword [0x4c18c0]
mov dword [0x4bfc30], ecx
jmp case.default.0x405279
mov ecx, dword [0x4c18c0]
xor eax, eax
cmp byte [ecx + 0xb9ac], al
setne al
lea eax, [eax + eax*8 + 0x5c4]
shl eax, 5
add eax, ecx
jmp 0x4054f3
mov ecx, dword [0x4c18c0]
xor eax, eax
cmp byte [ecx + 0xb76c], al
setne al
lea eax, [eax + eax*8 + 0x5b2]
shl eax, 5
add eax, ecx
jmp 0x4054f3
mov ecx, dword [0x4c18c0]
xor eax, eax
cmp byte [ecx + 0xb52c], al
setne al
lea eax, [eax + eax*8 + 0x5a0]
shl eax, 5
add eax, ecx
jmp 0x4054f3
movzx ebp, byte [edx + 0x14]
xor edi, edi
test ebp, ebp
jle case.default.0x405279
lea esi, [edx + 0xde]
lea ecx, [ecx]
movzx ecx, word [esi]
mov eax, ecx
lea edx, [eax + eax*8]
mov eax, dword [0x4c18c4]
shl edx, 5
cmp byte [edx + eax + 0xc], 0
je 0x405595
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x405583
cmp byte [esp + 0x12c], 0
jne 0x4055a3
mov ecx, dword [esp + 0x1c]
mov edx, 0x3fff
mov word [ecx + 6], ax
cmp bx, dx
je 0x405595
mov dword [esp + 0x14], ebx
movzx eax, word [esp + 0x38]
lea eax, [eax + eax*8]
shl eax, 5
add eax, dword [0x4c18c4]
mov dword [0x4bfc30], eax
mov esi, ebx
mov ecx, 0x3fff
and esi, 0x3fff
cmp bx, cx
je 0x4055db
mov edx, dword [0x4be5dc]
cmp si, word [edx]
jae 0x4055d1
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x12c]
lea eax, [edi + 4]
push eax
lea eax, [esp + 0x16]
push eax
add ecx, 0xb
push ecx
lea edx, [esp + 0x20]
push esi
push edx
call fcn.00409c30
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4055c5
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0x118]
push eax
mov eax, dword [esp + 0x128]
push 0x3fff
push edi
push esi
push eax
mov eax, dword [esp + 0x128]
push ecx
push edx
push eax
mov eax, dword [esp + 0x148]
jmp 0x406260
cmp byte [esp + 0x12c], 0
jne 0x405595
mov ebx, eax
mov eax, ecx
mov dword [esp + 0x38], eax
inc edi
add esi, 4
cmp edi, ebp
jl 0x405490
jmp 0x4055ae
movzx ecx, word [esi]
movzx ebx, word [esi + 2]
mov dword [esp + 0x38], ecx
mov edx, 0x3fff
mov dword [esp + 0x14], ebx
cmp bx, dx
je case.default.0x405279
jmp 0x4054e2
mov ebx, dword [esp + 0x14]
mov esi, ebx
and esi, 0x3fff
mov edx, dword [0x4bfc30]
mov byte [edx + 0x11], 2
mov eax, 0x3ffe
cmp si, ax
je 0x4055f3
mov ecx, 0x3ffd
cmp si, cx
jne 0x405817
cmp byte [esp + 0x12c], 0
jne 0x405605
mov edx, dword [esp + 0x1c]
mov byte [edx + 0xf], 1
test byte [0x4c0d19], 0xc
jne 0x405625
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0040e9a0
add esp, 0x18
mov al, byte [esp + 0x124]
cmp al, 0xa2
je 0x405634
cmp al, 0xa3
jne 0x405661
cmp byte [esp + 0x12c], 0
jne 0x405661
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x124]
push 0xffc3d44d
push 0
push 0
push eax
push ecx
push 1
call fcn.0040e9a0
add esp, 0x18
mov edx, dword [0x4bfc30]
mov eax, 0x3ffd
mov byte [edx + 0xd], 1
cmp si, ax
jne 0x4056a4
test byte [0x4c0d19], 0x30
jne 0x405695
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 0
call fcn.0040e9a0
add esp, 0x18
mov ecx, dword [0x4bfc30]
mov byte [ecx + 0xe], 1
jmp 0x405734
mov edx, 0x3ffe
cmp si, dx
jne 0x405734
mov al, byte [esp + 0x124]
cmp al, 0xa0
je 0x4056c1
cmp al, 0xa1
jne 0x4056ee
cmp byte [esp + 0x12c], 0
jne 0x4056ee
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x124]
push 0xffc3d44d
push 0
push 0
push eax
push ecx
push 1
call fcn.0040e9a0
add esp, 0x18
test byte [0x4c0d19], 0x10
je 0x405711
push 0xffc3d44d
push 0
push 0
push 0
push 0xa0
push 1
call fcn.0040e9a0
add esp, 0x18
test byte [0x4c0d19], 0x20
je 0x405734
push 0xffc3d44d
push 0
push 0
push 0
push 0xa1
push 1
call fcn.0040e9a0
add esp, 0x18
test byte [0x4c0d19], 1
je 0x405757
push 0xffc3d44d
push 0
push 0
push 0
push 0xa2
push 1
call fcn.0040e9a0
add esp, 0x18
test byte [0x4c0d19], 2
je 0x40577a
push 0xffc3d44d
push 0
push 0
push 0
push 0xa3
push 1
call fcn.0040e9a0
add esp, 0x18
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0040e9a0
mov edx, 0x3ffd
add esp, 0x18
cmp si, dx
jne 0x4057da
mov eax, dword [0x4bfc30]
cmp byte [eax + 0xe], 0
je 0x4057da
mov al, byte [esp + 0x124]
cmp al, 0x60
jb 0x4057b5
cmp al, 0x69
jbe 0x4057b9
cmp al, 0x6e
jne 0x4057da
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
call fcn.0040e9a0
mov ecx, dword [0x4bfc30]
add esp, 0x18
mov byte [ecx + 0xe], 0
cmp byte [esp + 0x12c], 0
mov eax, dword [esp + 0x24]
mov edx, 0x68
mov word [eax + 4], dx
jne 0x4057f9
mov eax, dword [esp + 0x1c]
mov byte [eax + 0x10], 1
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x128]
push 0
push SysReAllocString
push 0x3fff
push ecx
push edx
jmp 0x404eee
mov ecx, 0x3fff
cmp bx, cx
jne 0x405aa6
mov esi, dword [esp + 0x1c]
mov cl, byte [esi + 4]
mov al, byte [0x4c0d1a]
test cl, cl
je 0x40583b
mov dl, cl
not dl
and al, dl
mov edi, dword [esp + 0x114]
cmp edi, dword [0x4c0e4c]
jne 0x405863
cmp byte [esp + 0x2f], 0
je 0x405863
mov ebx, dword [0x4c18b8]
movzx edx, al
shl edx, 8
add edx, dword [esp + 0x34]
jmp 0x405879
movzx ebx, byte [esp + 0x124]
movzx edx, al
shl edx, 8
add edx, ebx
mov ebx, dword [0x4c18b4]
movzx ebx, word [ebx + edx*2]
mov edx, 0x3fff
mov dword [esp + 0x14], ebx
cmp bx, dx
jne 0x405900
cmp byte [0x4bfc2f], 0
je 0x405900
mov dl, byte [esp + 0x124]
cmp dl, 9
je 0x405900
and al, 0xf3
cmp edi, dword [0x4c0e4c]
jne 0x4058c3
cmp byte [esp + 0x2f], 0
je 0x4058c3
mov edx, dword [0x4c18b8]
movzx eax, al
shl eax, 8
add eax, dword [esp + 0x34]
jmp 0x4058d4
movzx eax, al
movzx edx, dl
shl eax, 8
add eax, edx
mov edx, dword [0x4c18b4]
movzx ebx, word [edx + eax*2]
mov eax, ebx
and eax, 0x3fff
mov edx, 0x3ff9
mov dword [esp + 0x14], ebx
cmp ax, dx
jbe 0x4058f7
mov edx, 0x3fff
cmp ax, dx
jb 0x405900
mov ebx, 0x3fff
mov dword [esp + 0x14], ebx
test ebx, 0x4000
je 0x40595a
cmp byte [esp + 0x12c], 0
jne 0x4059be
mov word [esi + 6], bx
lea eax, [esi + 6]
mov edx, 0x3fff
push 0
cmp word [eax], dx
jne 0x405a50
mov eax, dword [esp + 0x28]
push edx
push eax
push 0
mov ecx, dword [esp + 0x134]
mov edx, dword [esp + 0x12c]
mov eax, dword [esp + 0x128]
push ecx
push edx
push eax
mov eax, dword [esp + 0x144]
push edi
jmp 0x406260
mov eax, 0x3fff
cmp bx, ax
je 0x4059cc
mov edx, dword [0x4be5dc]
mov eax, ebx
and eax, 0x3fff
cmp byte [esp + 0x12c], 0
je 0x4059a8
cmp ax, word [edx]
jae 0x40599f
mov edx, dword [0x4c18bc]
movzx eax, ax
movzx eax, word [edx + eax*2]
mov edx, 0x3fff
cmp ax, dx
je 0x40599f
mov ebx, eax
mov dword [esp + 0x14], ebx
jmp 0x4059be
cmp byte [esp + 0x1a], 0
jne 0x4059cc
jmp 0x4059be
cmp ax, word [edx]
jae 0x4059be
mov edx, dword [0x4c18bc]
movzx eax, ax
mov ax, word [edx + eax*2]
mov word [esi + 6], ax
mov edx, 0x3fff
cmp bx, dx
jne 0x405aa6
cmp byte [esp + 0x12c], 0
je 0x40591a
test cl, cl
jne 0x405a17
test byte [esi + 0xb], 1
jne 0x405a17
cmp byte [esi + 8], cl
je 0x405a17
cmp byte [esp + 0x13], cl
jne 0x405a17
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x124]
push 0
push SysReAllocString
push 0x3fff
push eax
push ecx
push edx
mov ecx, edi
jmp 0x404efd
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x124]
push 0
push 0x3fff
push eax
mov eax, dword [esp + 0x128]
push ecx
mov ecx, dword [esp + 0x128]
push edx
push eax
mov eax, dword [esp + 0x140]
push ecx
push edi
jmp 0x406260
lea ecx, [esp + 0x16]
push ecx
add esi, 0xb
push esi
push 1
push eax
call fcn.00409c30
add esp, 0x14
cmp byte [esp + 0x12], 0
push 0
je 0x405a7e
mov edx, dword [esp + 0x28]
push 0x3fff
push edx
push 0
jmp 0x405c6e
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x128]
push SysReAllocString
push 0x3fff
push eax
push ecx
push edx
xor bl, bl
mov ecx, edi
jmp 0x404f04
mov edi, dword [esp + 0x1c]
mov al, byte [edi + 0xb]
mov esi, dword [esp + 0x20]
add edi, 0xb
mov dword [esp + 0x34], edi
test al, 8
je 0x405acf
cmp byte [esp + 0x12c], 0
je 0x405acf
and al, 0xf7
mov byte [esp + 0x12], 1
mov byte [edi], al
mov ecx, dword [0x4be5dc]
mov ebp, dword [esp + 0x24]
mov eax, ebx
and eax, 0x3fff
cmp ax, word [ecx]
jae 0x405b4a
test esi, esi
jne 0x405b4a
mov edi, dword [esp + 0x12c]
lea eax, [ebp + 4]
push eax
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x16]
push edx
push eax
lea ecx, [esp + 0x20]
push edi
push ecx
call fcn.00409c30
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x405b46
mov edx, dword [esp + 0x124]
mov ecx, dword [esp + 0x118]
push eax
mov eax, dword [esp + 0x120]
push 0x3fff
push ebp
push edi
push edx
mov edx, dword [esp + 0x128]
push eax
mov eax, dword [esp + 0x140]
push ecx
push edx
jmp 0x406260
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x114]
mov edx, dword [0x4c0e4c]
mov al, byte [0x4c0d19]
and ebx, 0x3fff
mov dword [esp + 0x20], ebx
cmp edi, edx
jne 0x405b9e
test al, 0x3f
jne 0x405bbe
mov ecx, dword [0x4c18c0]
test al, 0x40
je 0x405b88
cmp byte [ecx + 0x6668], 0
jne 0x405b88
mov byte [0x4bfc37], 1
test al, al
jns 0x405bc4
cmp byte [ecx + 0x6788], 0
jne 0x405bc4
mov byte [0x4bfc36], 1
jmp 0x405bc4
test al, 0xc
jne 0x405bbe
mov ecx, dword [0x4c18c0]
test al, 0x40
je 0x405b88
cmp byte [ecx + 0x6668], 0
jne 0x405b88
mov byte [0x4bfc37], 1
jmp 0x405bc4
mov ecx, dword [0x4c18c0]
test al, 4
je 0x405bf3
cmp byte [ecx + 0xb888], 0
jne 0x405bf3
test edx, edx
je 0x405bde
mov byte [0x4bfc35], 1
jmp 0x405c38
movzx eax, byte [0x4bd381]
push 0xffc3d44d
push 0
push 0
push 0
push eax
jmp 0x405c2e
test al, 8
je 0x405c38
cmp byte [ecx + 0xb9a8], 0
jne 0x405c38
call fcn.004114d0
test al, al
jne 0x405c38
cmp dword [0x4c0e4c], 0
je 0x405c1b
mov byte [0x4bfc34], 1
jmp 0x405c38
movzx ecx, byte [0x4bd381]
push 0xffc3d44d
push 0
push 0
push 0
push ecx
push 2
call fcn.0040e9a0
add esp, 0x18
mov edx, dword [esp + 0x20]
movzx eax, dx
lea ecx, [eax - 0x3ffa]
cmp ecx, 4
ja case.default.0x405c4e
jmp dword [ecx*4 + 0x406388]
cmp byte [0x4bfc2f], 0
jne case.0x405c4e.16379
mov edx, dword [esp + 0x12c]
push 0
push 0x3fff
push ebp
push edx
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x128]
push eax
mov eax, dword [esp + 0x13c]
push ecx
push edx
push edi
jmp 0x406260
mov cl, byte [0x4c0d19]
xor al, al
mov byte [esp + 0x11], al
test cl, 4
je 0x405ca8
mov al, 0xa4
jmp 0x405caf
test cl, 8
je 0x405cb3
mov al, 0xa5
mov byte [esp + 0x11], al
cmp byte [0x4bfc2f], 0
je 0x405d31
mov ecx, 0x3ffb
cmp dx, cx
je case.0x405c4e.16381
test al, al
movzx eax, al
jne 0x405cd6
mov eax, 0x12
push 0xffc3d44d
push 0
push 0
push 0
push eax
push 1
call fcn.0040e9a0
mov edx, dword [esp + 0x34]
add esp, 0x18
cmp byte [edx + 4], 0
je 0x405d25
mov eax, dword [esp + 0x124]
cmp al, 0x5b
je 0x405d25
cmp al, 0x5c
je 0x405d25
cmp byte [esp + 0x12c], 0
jne 0x405d25
push 0xffc3d44d
push 0
push 0
push 0
push eax
push 1
call fcn.0040e9a0
add esp, 0x18
mov byte [0x4bfc2f], 0
jmp 0x405fad
mov al, byte [esp + 0x124]
cmp al, 0xa4
je 0x405d45
mov byte [esp + 0x1a], 0
cmp al, 0xa5
jne 0x405d4a
mov byte [esp + 0x1a], 1
cmp al, 0xa0
je 0x405d56
cmp al, 0xa1
je 0x405d56
xor cl, cl
jmp 0x405d58
mov cl, 1
mov byte [esp + 0x1b], cl
cmp al, 0xa2
je 0x405d68
cmp al, 0xa3
je 0x405d68
xor dl, dl
jmp 0x405d6a
mov dl, 1
xor al, al
test byte [0x4c0d19], 0x10
mov byte [esp + 0x20], al
je 0x405d7d
mov al, 0xa0
jmp 0x405d9f
test byte [0x4c0d19], 0x20
je 0x405d8a
mov al, 0xa1
jmp 0x405d9f
cmp byte [esp + 0x12c], 0
jne 0x405da3
test cl, cl
je 0x405da3
mov al, byte [esp + 0x124]
mov byte [esp + 0x20], al
mov cl, byte [0x4c0d19]
mov byte [esp + 0x2f], 0
test cl, 1
je 0x405dba
mov byte [esp + 0x2f], 0xa2
jmp 0x405ddf
test cl, 2
je 0x405dc6
mov byte [esp + 0x2f], 0xa3
jmp 0x405ddf
cmp byte [esp + 0x12c], 0
jne 0x405ddf
test dl, dl
je 0x405ddf
mov cl, byte [esp + 0x124]
mov byte [esp + 0x2f], cl
mov edi, dword [esp + 0x20]
xor bl, bl
test al, al
je 0x405e01
push 0xffc3d44d
push 0
push 0
push 0
push edi
push 1
call fcn.0040e9a0
add esp, 0x18
mov bl, 1
cmp byte [esp + 0x2f], 0
je 0x405e22
mov edx, dword [esp + 0x2f]
push 0xffc3d44d
push 0
push 0
push 0
push edx
push 1
call fcn.0040e9a0
add esp, 0x18
cmp byte [esp + 0x1a], 0
je 0x405e3c
cmp byte [esp + 0x12c], 0
jne 0x405e44
mov al, byte [esp + 0x124]
jmp 0x405e40
mov al, byte [esp + 0x11]
test al, al
jne 0x405e5b
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0040e9a0
add esp, 0x18
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0040e9a0
add esp, 0x18
test bl, bl
je 0x405e93
cmp byte [esp + 0x1b], 0
jne 0x405e93
push 0xffc3d44d
push 0
push 0
push 0
push edi
push 0
call fcn.0040e9a0
add esp, 0x18
mov byte [0x4bfc2f], 1
jmp 0x405fad
cmp byte [0x4bfc2f], 0
jne 0x405ebd
mov eax, dword [esp + 0x12c]
push 0
push 0x3fff
push ebp
push eax
jmp 0x405935
cmp byte [esp + 0x12c], 0
jne 0x405efb
mov al, byte [esp + 0x124]
cmp al, 0xa2
je 0x405ede
cmp al, 0xa3
je 0x405ede
cmp al, 0xa0
je 0x405ede
cmp al, 0xa1
jne 0x405efb
mov ecx, dword [esp + 0x124]
push 0xffc3d44d
push 0
push 0
push 0
push ecx
push 1
call fcn.0040e9a0
add esp, 0x18
test byte [0x4c0d19], 0xc
je 0x405f1d
cmp byte [esp + 0x12c], 0
je 0x405f34
mov al, byte [esp + 0x124]
cmp al, 0xa4
je 0x405f1d
cmp al, 0xa5
jne 0x405f34
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0040e9a0
add esp, 0x18
mov edx, 0x3ffd
xor bl, bl
cmp word [esp + 0x20], dx
jne 0x405f64
test byte [0x4c0d19], 0x30
jne 0x405f64
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 0
call fcn.0040e9a0
add esp, 0x18
mov bl, 1
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0040e9a0
add esp, 0x18
test bl, bl
je 0x405fad
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
call fcn.0040e9a0
add esp, 0x18
jmp 0x405fad
cmp byte [esi + 0x1e], 5
mov dword [esp + 0x28], eax
jne 0x405fad
movzx eax, word [esi + 0x1c]
shl eax, 0x10
or dword [esp + 0x28], eax
cmp byte [esp + 0x13], 0
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x12c]
mov edi, dword [esp + 0x1c]
mov ecx, 0x68
mov word [ebp + 4], cx
je 0x40601f
test bl, bl
je 0x406146
cmp byte [edi + 8], 0
je 0x40601f
mov edi, dword [esp + 0x128]
mov esi, dword [esp + 0x124]
push 0xffc3d44e
push 0
push 0
push edi
push esi
push 1
call fcn.0040e9a0
push 0xffc3d44d
push 0
push 0
push edi
push esi
push 2
call fcn.0040e9a0
mov edx, dword [esp + 0x58]
push 0
push SysReAllocString
push edx
push ebp
push edi
jmp 0x405002
test bl, bl
je 0x406146
cmp byte [edi + 4], 0
je 0x406086
cmp byte [edi + 0x10], 0
mov eax, dword [esp + 0x28]
je 0x406055
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x124]
push 0
push SysReAllocString
push eax
push ebp
push ecx
push edx
jmp 0x404ef6
mov ecx, dword [esp + 0x124]
mov edx, dword [esp + 0x11c]
push 1
push eax
mov eax, dword [esp + 0x120]
push ebp
push ebx
push ecx
mov ecx, dword [esp + 0x128]
push edx
push eax
mov eax, dword [esp + 0x144]
push ecx
jmp 0x406260
cmp byte [esp + 0x12], 0
jne 0x40609a
mov edx, dword [esp + 0x34]
test byte [edx], 1
je 0x4061ff
mov esi, dword [esp + 0x114]
cmp esi, dword [0x4c0e50]
jne 0x4060d7
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x124]
mov edx, dword [esp + 0x11c]
push 0
push eax
mov eax, dword [esp + 0x120]
push ebp
push ebx
push ecx
push edx
push eax
mov eax, dword [esp + 0x144]
push esi
jmp 0x406260
mov eax, dword [edi]
test eax, eax
je 0x4060e6
cmp dword [eax], 7
je 0x4060e6
mov al, 1
jmp 0x4060e8
xor al, al
cmp byte [edi + 0x10], 0
je 0x40611e
cmp byte [esp + 0x33], 0
jne 0x40611e
test al, al
jne 0x406122
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x124]
push 0xffc3d44d
push 0
push 0
push ecx
push edx
push 0
call fcn.0040e9a0
add esp, 0x18
jmp 0x4060a9
test al, al
je 0x4060a9
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x124]
push 0
push SysReAllocString
push eax
push ebp
push ecx
push edx
mov ecx, esi
jmp 0x404efd
mov eax, dword [0x4bfc30]
mov byte [edi + 0xf], 1
test eax, eax
je 0x40615d
cmp byte [eax + 4], 0
je 0x40615d
mov byte [eax + 0x11], 2
cmp byte [esp + 0x12], 0
je 0x4061a0
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x124]
or byte [eax], 8
mov eax, dword [esp + 0x11c]
push 0
push ecx
mov ecx, dword [esp + 0x120]
push ebp
push ebx
push edx
mov edx, dword [esp + 0x128]
push eax
mov eax, dword [esp + 0x140]
push ecx
push edx
jmp 0x406260
mov eax, dword [esp + 0x124]
cmp al, 0xa4
je 0x4061af
cmp al, 0xa5
jne 0x4061ff
mov cl, byte [0x4c0d19]
test cl, 0xc0
je 0x4061e3
test cl, 0x33
jne 0x4061e3
movzx eax, byte [0x4bd381]
push 0xffc3d44d
push 0
push 0
push 0
push eax
push 2
call fcn.0040e9a0
mov eax, dword [esp + 0x13c]
add esp, 0x18
mov ecx, dword [esp + 0x128]
push 0xffc3d44d
push 0
push 0
push ecx
push eax
push 1
call fcn.0040e9a0
add esp, 0x18
test bl, bl
jne 0x406207
mov byte [edi + 0x10], 1
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x124]
push 0
push SysReAllocString
push edx
push ebp
push eax
push ecx
jmp 0x404ef6
mov eax, dword [esp + 0x12c]
push 0
push 0x3fff
push edi
test al, al
push eax
mov eax, dword [esp + 0x134]
sete dl
mov byte [esi + 0xf], 0
mov byte [esi + 0xc], dl
push eax
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x12c]
push ecx
push edx
push ebx
mov eax, ebp
mov ecx, dword [esp + 0x140]
call fcn.004064a0
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret