Function at 0x4045d0
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 0x404611
cmp eax, 0xffc3d44e
je 0x404611
mov byte [esp + 0x13], 0
cmp eax, 0xffc3d44d
jne 0x404616
mov byte [esp + 0x13], 1
mov ecx, dword [0x4c1a04]
test ecx, ecx
jne 0x40462d
lea edi, [esp + 0x3c]
mov dword [esp + 0x24], edi
jmp 0x4046e8
mov eax, dword [0x4c1a08]
mov edi, eax
imul edi, edi, 0xd4
inc eax
add edi, ecx
mov dword [esp + 0x24], edi
mov dword [0x4c1a08], eax
cmp eax, dword [0x4bd3e8]
jl 0x404658
mov dword [0x4c1a08], 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 [0x4c3fa4]
mov dword [0x4c1a0c], eax
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
jns 0x404687
fadd dword [0x4b7698]
fdiv qword [0x4b7690]
mov dword [0x4c3fa4], eax
fstp dword [edi + 8]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
je 0x4046c9
cmp esi, dword [0x4c1a10]
je 0x4046c1
mov eax, dword [0x4c0e74]
push esi
lea edx, [edi + 0xc]
push edx
push 0x418
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x4046e2
xor ecx, ecx
mov word [edi + 0xc], cx
jmp 0x4046e2
mov eax, 0x49d864
lea edx, [edi + 0xc]
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4046d3
mov dword [0x4c1a10], esi
cmp bl, 0xe7
jne 0x404712
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 0x404727
xor ebp, ebp
mov dword [esp + 0x128], ebp
mov edx, dword [esp + 0x114]
cmp edx, dword [0x4c0fa8]
jne 0x404767
mov bl, byte [esp + 0x134]
and bl, 1
jne 0x4048e1
cmp byte [esp + 0x12c], bl
movzx ecx, byte [esp + 0x124]
setne al
dec al
and al, 0x80
mov byte [ecx + 0x4c0e98], al
jmp 0x4048e1
mov ebx, dword [esp + 0x134]
shr ebx, 4
and bl, 1
test ebp, 0x100
jne case.0x4047ae.13
push 0x90
call dword [sym.imp.USER32.dll_GetKeyState]
test al, 1
je case.0x4047ae.13
movzx eax, byte [esp + 0x124]
add eax, 0xfffffff4
cmp eax, 0x62
ja case.0x4047ae.13
movzx edx, byte [eax + 0x40634c]
jmp dword [edx*4 + 0x40631c]
cmp byte [esp + 0x12c], 0
sete al
mov byte [0x4bfd64], al
jmp case.0x4047ae.13
cmp byte [esp + 0x12c], 0
sete cl
mov byte [0x4bfd65], cl
jmp case.0x4047ae.13
cmp byte [esp + 0x12c], 0
sete dl
mov byte [0x4bfd66], dl
jmp case.0x4047ae.13
cmp byte [esp + 0x12c], 0
sete al
mov byte [0x4bfd67], al
jmp case.0x4047ae.13
cmp byte [esp + 0x12c], 0
sete cl
mov byte [0x4bfd68], cl
jmp case.0x4047ae.13
cmp byte [esp + 0x12c], 0
sete dl
mov byte [0x4bfd69], dl
jmp case.0x4047ae.13
cmp byte [esp + 0x12c], 0
sete al
mov byte [0x4bfd6a], al
jmp case.0x4047ae.13
cmp byte [esp + 0x12c], 0
sete cl
mov byte [0x4bfd6b], cl
jmp case.0x4047ae.13
cmp byte [esp + 0x12c], 0
sete dl
mov byte [0x4bfd6c], dl
jmp case.0x4047ae.13
cmp byte [esp + 0x12c], 0
sete al
mov byte [0x4bfd6d], al
jmp case.0x4047ae.13
cmp byte [esp + 0x12c], 0
sete cl
mov byte [0x4bfd6e], cl
movzx esi, byte [esp + 0x124]
mov eax, dword [0x4c1a28]
lea edx, [esi + esi*8]
shl edx, 5
cmp byte [edx + eax + 4], 0
jne 0x4048e1
test byte [esp + 0x134], 0x10
jne 0x4048e1
mov ecx, dword [esp + 0x12c]
mov al, byte [esp + 0x124]
push ecx
call fcn.004077d0
add esp, 4
test al, al
je 0x4048e1
cmp byte [esp + 0x12c], 0
setne dl
dec dl
and dl, 0x80
mov byte [esi + 0x4c0e98], dl
cmp byte [esp + 0x13], 0
je 0x4048ec
mov al, 0x69
jmp 0x4048f8
neg bl
sbb bl, bl
and bl, 0x41
add bl, 0x20
mov al, bl
cmp byte [0x4c0e94], 0
cbw
mov word [edi + 4], ax
je 0x404959
mov al, byte [esp + 0x124]
cmp al, 0x5b
je 0x404916
cmp al, 0x5c
jne 0x404959
cmp byte [esp + 0x12c], 0
jne 0x404959
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.00406440
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret
cmp byte [0x4bfd87], 0
je 0x404a18
cmp byte [esp + 0x124], 0x1b
jne 0x404a18
cmp byte [esp + 0x12c], 0
jne 0x404a18
push 0
push str.32771
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x404a18
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 0x404a18
push 0xffc3d44d
push 0
push 0
push 0
push 0x1b
push 0
call fcn.0040eaa0
mov dl, byte [0x4c0e71]
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.0040eaa0
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.00406440
add esp, 0x48
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret
mov edx, dword [0x4c1a2c]
movzx eax, bp
lea ecx, [eax + eax*8]
shl ecx, 5
mov dword [esp + 0x34], eax
lea eax, [ecx + edx]
mov edx, dword [0x4c0fa4]
mov cl, byte [eax + 0x12]
mov byte [esp + 0x2f], cl
cmp dword [esp + 0x114], edx
jne 0x404a50
test cl, cl
je 0x404a50
mov esi, eax
mov dword [esp + 0x1c], eax
jmp 0x404a68
movzx eax, byte [esp + 0x124]
lea esi, [eax + eax*8]
shl esi, 5
add esi, dword [0x4c1a28]
mov dword [esp + 0x1c], esi
cmp byte [esp + 0x13], 0
je 0x404ad5
cmp dword [esp + 0x130], 0xffc3d44e
jne 0x404aa0
cmp byte [esp + 0x12c], 0
je 0x404aa0
cmp dword [0x4bfd88], esi
jne 0x404aa0
mov byte [esi + 0xc], 0
mov byte [esi + 0xf], 0
mov dword [0x4bfd88], 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 0x4062fe
cmp byte [esp + 0x12c], 0
jne 0x404aec
mov eax, 0x3fff
mov byte [esi + 0x10], 0
mov word [esi + 6], ax
mov ebx, dword [esp + 0x114]
cmp ebx, edx
jne 0x404baf
cmp byte [esp + 0x12c], 0
je 0x404c0c
cmp byte [0x4bfd8f], 0
mov al, byte [esp + 0x124]
je 0x404b1d
cmp al, 0x5b
je 0x404b4c
cmp byte [0x4bfd8e], 0
je 0x404b2a
cmp al, 0x5c
je 0x404b4c
cmp byte [0x4bfd8d], 0
je 0x404b37
cmp al, 0xa4
je 0x404b4c
cmp byte [0x4bfd8c], 0
je 0x404c0c
cmp al, 0xa5
jne 0x404c0c
movzx eax, al
add eax, 0xffffffa5
cmp eax, 0x4a
ja case.0x404b5e.93
movzx ecx, byte [eax + 0x4063c4]
jmp dword [ecx*4 + 0x4063b0]
mov byte [0x4bfd8f], 0
jmp case.0x404b5e.93
mov byte [0x4bfd8e], 0
jmp case.0x404b5e.93
mov byte [0x4bfd8d], 0
jmp case.0x404b5e.93
mov byte [0x4bfd8c], 0
test byte [0x4c0e71], 3
jne 0x404c0c
movzx edx, byte [0x4bd395]
push 0xffc3d44d
push 0
push 0
push 0
push edx
push 2
call fcn.0040eaa0
add esp, 0x18
jmp 0x404c0c
mov al, byte [esp + 0x124]
test al, al
jne 0x404bd1
mov eax, dword [esp + 0x12c]
push 0
push 0x3fff
push edi
push eax
push 0
jmp 0x4062ed
cmp al, 1
je 0x404bd9
cmp al, 2
jne 0x404c0c
cmp dword [0x4c0ffc], 0
jne 0x4062c9
push 0
push str.32768
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x404c0c
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x4c310c]
je 0x4062c9
mov edx, dword [0x4bfd88]
mov ecx, dword [0x4c1a28]
test edx, edx
je 0x404c48
cmp edx, esi
je 0x404c48
cmp byte [esp + 0x12c], 0
jne 0x404c48
cmp ebx, dword [0x4c0fa4]
jne 0x404c3c
xor eax, eax
cmp byte [esi + 4], al
sete al
jmp 0x404c40
movzx eax, byte [edx + 4]
test eax, eax
je 0x404c48
mov byte [edx + 0x11], 1
cmp byte [esi + 8], 0
jne 0x404c81
cmp byte [esi + 9], 0
jne 0x404c81
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 0x4062fd
cmp byte [esp + 0x12c], 0
mov byte [esp + 0x33], 0
mov dword [esp + 0x14], 0x3fff
mov dword [esp + 0x20], 0
je 0x404cdb
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 0x404ccd
mov dword [esp + 0x14], eax
mov byte [esp + 0x33], 1
mov word [esi + 6], dx
mov edx, dword [0x4bfd88]
cmp byte [esp + 0x12c], 0
sete al
mov byte [esi + 0xc], al
mov eax, dword [0x4c0fa4]
mov byte [esp + 0x11], 0
cmp ebx, eax
jne 0x404d64
cmp byte [esi + 4], 0
je 0x404d87
cmp byte [ecx + 0xb64c], 0
jne 0x404d0f
cmp byte [ecx + 0xb76c], 0
jne 0x404d0f
xor eax, eax
jmp 0x404d14
mov eax, 1
cmp byte [ecx + 0xb88c], 0
mov byte [ecx + 0x132c], al
jne 0x404d30
cmp byte [ecx + 0xb9ac], 0
jne 0x404d30
xor eax, eax
jmp 0x404d35
mov eax, 1
cmp byte [ecx + 0xb40c], 0
mov byte [ecx + 0x144c], al
jne 0x404d57
cmp byte [ecx + 0xb52c], 0
jne 0x404d57
xor eax, eax
mov byte [ecx + 0x120c], al
jmp 0x404d87
mov eax, 1
mov byte [ecx + 0x120c], al
jmp 0x404d87
test eax, eax
jne 0x404d87
push 1
call fcn.004110a0
mov edx, dword [0x4bfd88]
add esp, 4
mov byte [0x4c0e72], al
mov byte [0x4c0e71], al
mov byte [esp + 0x11], 1
mov eax, dword [esi]
test eax, eax
je 0x404d97
cmp dword [eax], 7
mov byte [esp + 0x13], 1
je 0x404d9c
mov byte [esp + 0x13], 0
mov al, byte [esi + 8]
test al, al
je 0x404f26
cmp byte [esp + 0x12c], 0
jne 0x404f26
test edx, edx
je 0x404dc7
cmp byte [esi + 9], 0
je 0x404dc7
cmp esi, edx
jne 0x404f26
cmp al, 1
jne 0x404df4
cmp byte [esp + 0x2f], 0
mov eax, dword [esp + 0x34]
jne 0x404dde
movzx eax, byte [esp + 0x124]
mov ecx, dword [esp + 0x2f]
push ecx
push eax
call fcn.00409a90
add esp, 8
test al, al
je 0x404df4
mov bl, 1
jmp 0x404e07
xor bl, bl
cmp esi, dword [0x4bfd88]
je 0x404e07
mov dword [0x4bfd88], esi
mov byte [esi + 0x11], bl
cmp byte [esi + 9], 0
je 0x404ebd
cmp byte [esp + 0x11], 0
jne 0x404e27
push 1
mov byte [esp + 0x15], 1
call fcn.004110a0
add esp, 4
mov al, byte [esi + 4]
mov cl, byte [0x4c0e72]
test al, al
je 0x404e38
not al
and cl, al
test cl, cl
jne 0x404e40
test bl, bl
je 0x404ebd
mov edx, dword [0x4c0fa4]
cmp dword [esp + 0x114], edx
jne 0x404e6c
cmp byte [esp + 0x2f], 0
je 0x404e6c
movzx eax, cl
mov ecx, dword [0x4c1a20]
shl eax, 8
add eax, dword [esp + 0x34]
movzx ecx, word [ecx + eax*2]
jmp 0x404e86
movzx eax, byte [esp + 0x124]
movzx edx, cl
mov ecx, dword [0x4c1a1c]
shl edx, 8
add edx, eax
movzx ecx, word [ecx + edx*2]
mov dword [esp + 0x14], ecx
test ecx, 0x4000
je 0x404e98
mov word [esi + 6], cx
jmp 0x404ecb
mov edx, dword [0x4be600]
mov eax, ecx
and eax, 0x3fff
cmp ax, word [edx]
jae 0x404ec1
mov edx, dword [0x4c1a24]
movzx eax, ax
mov ax, word [edx + eax*2]
mov word [esi + 6], ax
jmp 0x404ec1
mov ecx, dword [esp + 0x14]
mov edx, 0x3fff
cmp cx, dx
jne 0x404f26
test bl, bl
je 0x404edc
or byte [esi + 0xb], 8
mov eax, 0x23
mov word [edi + 4], ax
cmp byte [esi + 4], 0
jne 0x404ef7
test byte [esi + 0xb], 1
jne 0x404ef7
cmp byte [esp + 0x13], 0
jne 0x404ef7
test bl, bl
je 0x404920
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 0x4062fe
cmp byte [esi + 9], 0
mov edx, dword [esp + 0x12c]
mov byte [esp + 0x1a], 0
je 0x404fd1
test dl, dl
je 0x404fd1
cmp dword [0x4bfd88], esi
jne 0x404f5d
cmp byte [esp + 0x12], 0
je 0x404fd1
mov dword [0x4bfd88], 0
cmp byte [esi + 0xa], 0
jne 0x404fcc
mov al, byte [esi + 0xb]
test al, 8
je 0x404f73
xor cl, cl
and al, 0xf7
mov byte [esi + 0xb], al
jmp 0x404f75
mov cl, 1
cmp byte [esp + 0x12], 0
je 0x404fbe
test cl, cl
je 0x404fbe
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.00406440
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret
push 0
push 0x3fff
push edi
push edx
jmp 0x404ab0
mov byte [esp + 0x1a], 1
cmp byte [esi + 8], 0
je 0x405194
test dl, dl
je 0x405194
cmp dword [0x4bfd88], esi
jne 0x404ff5
mov dword [0x4bfd88], 0
cmp byte [esi + 0xd], 0
je 0x405016
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 1
mov byte [esi + 0xd], 0
call fcn.0040eaa0
add esp, 0x18
cmp byte [esi + 0xe], 0
je 0x405037
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
mov byte [esi + 0xe], 0
call fcn.0040eaa0
add esp, 0x18
mov ebx, dword [esp + 0x14]
mov edx, 0x3fff
cmp bx, dx
jne 0x405056
mov al, byte [esi + 0xb]
test al, 8
je 0x405056
and al, 0xf7
mov byte [esi + 0xb], al
jmp 0x404aa0
mov cl, byte [esp + 0x13]
mov al, byte [esi + 0x11]
test cl, cl
je 0x405104
cmp al, 2
jne 0x4050cb
mov esi, dword [esp + 0x124]
push 0xffc3d44e
push 0
push 0
push ebp
push esi
push 1
call fcn.0040eaa0
push 0xffc3d44d
push 0
push 0
push ebp
push esi
push 2
call fcn.0040eaa0
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.00406440
add esp, 0x48
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret
cmp al, 1
jne 0x40513d
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 0x4062fe
test al, al
je 0x40513d
cmp bx, dx
jne 0x40513d
cmp byte [esi + 4], 0
je 0x40511e
cmp al, 2
jne 0x4050cf
push 1
jmp 0x404aa2
test byte [esi + 0xb], 1
push 0
je 0x404f82
mov ecx, dword [esp + 0x130]
push 0x3fff
push edi
push ecx
jmp 0x404f01
cmp byte [esi + 9], 0
jne 0x405172
cmp byte [esi + 4], 0
jne 0x4050cf
test byte [esi + 0xb], 1
jne 0x4050cf
test cl, cl
jne 0x4050cf
mov ecx, dword [esp + 0x124]
push 0
push SysReAllocString
push 0x3fff
push edi
push ebp
push ecx
jmp 0x404f96
cmp byte [esp + 0x1b], 0
jne 0x405198
cmp byte [esi + 0xa], 0
jne 0x405198
mov ecx, dword [esp + 0x12c]
push 0
push 0x3fff
push edi
push ecx
jmp 0x404f01
mov ebx, dword [esp + 0x14]
cmp byte [esp + 0x11], 0
jne 0x4051b3
mov eax, 0x3fff
cmp bx, ax
jne 0x4051b3
push 1
call fcn.004110a0
add esp, 4
cmp dword [0x4bfd88], 0
mov byte [esp + 0x12], 0
je 0x4058b7
cmp byte [esp + 0x12c], 0
je 0x4051dd
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + 0xa], 0
je 0x4058b7
mov edx, 0x3fff
cmp bx, dx
jne 0x405b46
mov edi, dword [esp + 0x1c]
xor ebp, ebp
cmp byte [edi + 0x13], 0
jbe 0x405282
mov edx, dword [0x4c1a28]
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 0x405258
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x405242
cmp byte [esp + 0x12c], 0
jne 0x405266
mov ecx, 0x3fff
mov word [edi + 6], ax
cmp bx, cx
je 0x405258
mov dword [esp + 0x14], ebx
jmp 0x405326
cmp byte [esp + 0x12c], 0
mov edx, dword [0x4c1a28]
jne 0x405258
mov ebx, eax
mov byte [esp + 0x11], cl
movzx eax, byte [edi + 0x13]
inc ebp
add esi, 4
cmp ebp, eax
jl 0x405204
jmp 0x405270
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 0x405320
xor ebp, ebp
cmp byte [edi + 0x14], 0
jbe 0x405303
lea esi, [edi + 0xde]
movzx ecx, word [esi]
mov edx, dword [0x4c1a2c]
mov eax, ecx
lea eax, [eax + eax*8]
shl eax, 5
cmp byte [eax + edx + 0xc], 0
je 0x4053a9
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x405399
cmp byte [esp + 0x12c], 0
jne 0x4053bb
mov word [edi + 6], ax
mov eax, 0x3fff
cmp bx, ax
je 0x4053a9
mov dword [esp + 0x14], ebx
movzx eax, word [esp + 0x38]
lea eax, [eax + eax*8]
shl eax, 5
add eax, dword [0x4c1a2c]
mov dword [0x4bfd88], eax
mov edx, 0x3fff
cmp bx, dx
jne case.default.0x405319
movzx eax, byte [esp + 0x124]
add eax, 0xffffff60
cmp eax, 5
ja case.default.0x405319
jmp dword [eax*4 + 0x406410]
mov edx, dword [0x4c1a28]
movzx ecx, byte [esp + 0x11]
mov eax, ecx
sub eax, 0x10
je 0x40537d
dec eax
je 0x405361
dec eax
je 0x405348
lea ecx, [ecx + ecx*8]
shl ecx, 5
add ecx, edx
mov dword [0x4bfd88], ecx
jmp 0x4052f5
xor eax, eax
cmp byte [edx + 0xb9ac], al
setne al
lea eax, [eax + eax*8 + 0x5c4]
shl eax, 5
add eax, edx
jmp 0x4052f0
xor eax, eax
cmp byte [edx + 0xb76c], al
setne al
lea eax, [eax + eax*8 + 0x5b2]
shl eax, 5
add eax, edx
jmp 0x4052f0
xor eax, eax
cmp byte [edx + 0xb52c], al
setne al
lea eax, [eax + eax*8 + 0x5a0]
shl eax, 5
add eax, edx
jmp 0x4052f0
cmp byte [esp + 0x12c], 0
jne 0x4053a9
mov ebx, eax
mov dword [esp + 0x38], ecx
movzx edx, byte [edi + 0x14]
inc ebp
add esi, 4
cmp ebp, edx
jl 0x405290
jmp 0x4053c6
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 0x405303
jmp 0x4052df
mov al, 0x11
jmp 0x4053e7
mov al, 0x12
jmp 0x4053e7
mov al, 0x10
mov ecx, dword [0x4c1a28]
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 0x405483
lea esi, [edx + 0x16]
lea ebx, [ebx]
mov cl, byte [esi]
mov ebx, dword [0x4c1a28]
movzx eax, cl
lea eax, [eax + eax*8]
shl eax, 5
cmp byte [eax + ebx + 0xc], 0
je 0x405467
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x405455
cmp byte [esp + 0x12c], 0
jne 0x405475
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov word [ecx + 6], ax
mov eax, 0x3fff
cmp bx, ax
jne 0x405491
jmp 0x40546b
cmp byte [esp + 0x12c], 0
jne 0x405467
mov dword [esp + 0x14], eax
mov byte [esp + 0x11], cl
mov ebx, dword [esp + 0x14]
inc edi
add esi, 4
cmp edi, ebp
jl 0x405410
jmp 0x405483
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 0x40551d
movzx ecx, byte [esp + 0x11]
mov eax, ecx
sub eax, 0x10
je 0x4054fe
dec eax
je 0x4054dc
dec eax
je 0x4054ba
lea ecx, [ecx + ecx*8]
shl ecx, 5
add ecx, dword [0x4c1a28]
mov dword [0x4bfd88], ecx
jmp case.default.0x405319
mov ecx, dword [0x4c1a28]
xor eax, eax
cmp byte [ecx + 0xb9ac], al
setne al
lea eax, [eax + eax*8 + 0x5c4]
shl eax, 5
add eax, ecx
jmp 0x405593
mov ecx, dword [0x4c1a28]
xor eax, eax
cmp byte [ecx + 0xb76c], al
setne al
lea eax, [eax + eax*8 + 0x5b2]
shl eax, 5
add eax, ecx
jmp 0x405593
mov ecx, dword [0x4c1a28]
xor eax, eax
cmp byte [ecx + 0xb52c], al
setne al
lea eax, [eax + eax*8 + 0x5a0]
shl eax, 5
add eax, ecx
jmp 0x405593
movzx ebp, byte [edx + 0x14]
xor edi, edi
test ebp, ebp
jle case.default.0x405319
lea esi, [edx + 0xde]
lea ecx, [ecx]
movzx ecx, word [esi]
mov eax, ecx
lea edx, [eax + eax*8]
mov eax, dword [0x4c1a2c]
shl edx, 5
cmp byte [edx + eax + 0xc], 0
je 0x405635
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x405623
cmp byte [esp + 0x12c], 0
jne 0x405643
mov ecx, dword [esp + 0x1c]
mov edx, 0x3fff
mov word [ecx + 6], ax
cmp bx, dx
je 0x405635
mov dword [esp + 0x14], ebx
movzx eax, word [esp + 0x38]
lea eax, [eax + eax*8]
shl eax, 5
add eax, dword [0x4c1a2c]
mov dword [0x4bfd88], eax
mov esi, ebx
mov ecx, 0x3fff
and esi, 0x3fff
cmp bx, cx
je 0x40567b
mov edx, dword [0x4be600]
cmp si, word [edx]
jae 0x405671
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.00409cf0
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
jne 0x405665
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 0x406300
cmp byte [esp + 0x12c], 0
jne 0x405635
mov ebx, eax
mov eax, ecx
mov dword [esp + 0x38], eax
inc edi
add esi, 4
cmp edi, ebp
jl 0x405530
jmp 0x40564e
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.0x405319
jmp 0x405582
mov ebx, dword [esp + 0x14]
mov esi, ebx
and esi, 0x3fff
mov edx, dword [0x4bfd88]
mov byte [edx + 0x11], 2
mov eax, 0x3ffe
cmp si, ax
je 0x405693
mov ecx, 0x3ffd
cmp si, cx
jne 0x4058b7
cmp byte [esp + 0x12c], 0
jne 0x4056a5
mov edx, dword [esp + 0x1c]
mov byte [edx + 0xf], 1
test byte [0x4c0e71], 0xc
jne 0x4056c5
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0040eaa0
add esp, 0x18
mov al, byte [esp + 0x124]
cmp al, 0xa2
je 0x4056d4
cmp al, 0xa3
jne 0x405701
cmp byte [esp + 0x12c], 0
jne 0x405701
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x124]
push 0xffc3d44d
push 0
push 0
push eax
push ecx
push 1
call fcn.0040eaa0
add esp, 0x18
mov edx, dword [0x4bfd88]
mov eax, 0x3ffd
mov byte [edx + 0xd], 1
cmp si, ax
jne 0x405744
test byte [0x4c0e71], 0x30
jne 0x405735
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 0
call fcn.0040eaa0
add esp, 0x18
mov ecx, dword [0x4bfd88]
mov byte [ecx + 0xe], 1
jmp 0x4057d4
mov edx, 0x3ffe
cmp si, dx
jne 0x4057d4
mov al, byte [esp + 0x124]
cmp al, 0xa0
je 0x405761
cmp al, 0xa1
jne 0x40578e
cmp byte [esp + 0x12c], 0
jne 0x40578e
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x124]
push 0xffc3d44d
push 0
push 0
push eax
push ecx
push 1
call fcn.0040eaa0
add esp, 0x18
test byte [0x4c0e71], 0x10
je 0x4057b1
push 0xffc3d44d
push 0
push 0
push 0
push 0xa0
push 1
call fcn.0040eaa0
add esp, 0x18
test byte [0x4c0e71], 0x20
je 0x4057d4
push 0xffc3d44d
push 0
push 0
push 0
push 0xa1
push 1
call fcn.0040eaa0
add esp, 0x18
test byte [0x4c0e71], 1
je 0x4057f7
push 0xffc3d44d
push 0
push 0
push 0
push 0xa2
push 1
call fcn.0040eaa0
add esp, 0x18
test byte [0x4c0e71], 2
je 0x40581a
push 0xffc3d44d
push 0
push 0
push 0
push 0xa3
push 1
call fcn.0040eaa0
add esp, 0x18
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0040eaa0
mov edx, 0x3ffd
add esp, 0x18
cmp si, dx
jne 0x40587a
mov eax, dword [0x4bfd88]
cmp byte [eax + 0xe], 0
je 0x40587a
mov al, byte [esp + 0x124]
cmp al, 0x60
jb 0x405855
cmp al, 0x69
jbe 0x405859
cmp al, 0x6e
jne 0x40587a
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
call fcn.0040eaa0
mov ecx, dword [0x4bfd88]
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 0x405899
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 0x404f8e
mov ecx, 0x3fff
cmp bx, cx
jne 0x405b46
mov esi, dword [esp + 0x1c]
mov cl, byte [esi + 4]
mov al, byte [0x4c0e72]
test cl, cl
je 0x4058db
mov dl, cl
not dl
and al, dl
mov edi, dword [esp + 0x114]
cmp edi, dword [0x4c0fa4]
jne 0x405903
cmp byte [esp + 0x2f], 0
je 0x405903
mov ebx, dword [0x4c1a20]
movzx edx, al
shl edx, 8
add edx, dword [esp + 0x34]
jmp 0x405919
movzx ebx, byte [esp + 0x124]
movzx edx, al
shl edx, 8
add edx, ebx
mov ebx, dword [0x4c1a1c]
movzx ebx, word [ebx + edx*2]
mov edx, 0x3fff
mov dword [esp + 0x14], ebx
cmp bx, dx
jne 0x4059a0
cmp byte [0x4bfd87], 0
je 0x4059a0
mov dl, byte [esp + 0x124]
cmp dl, 9
je 0x4059a0
and al, 0xf3
cmp edi, dword [0x4c0fa4]
jne 0x405963
cmp byte [esp + 0x2f], 0
je 0x405963
mov edx, dword [0x4c1a20]
movzx eax, al
shl eax, 8
add eax, dword [esp + 0x34]
jmp 0x405974
movzx eax, al
movzx edx, dl
shl eax, 8
add eax, edx
mov edx, dword [0x4c1a1c]
movzx ebx, word [edx + eax*2]
mov eax, ebx
and eax, 0x3fff
mov edx, 0x3ff9
mov dword [esp + 0x14], ebx
cmp ax, dx
jbe 0x405997
mov edx, 0x3fff
cmp ax, dx
jb 0x4059a0
mov ebx, 0x3fff
mov dword [esp + 0x14], ebx
test ebx, 0x4000
je 0x4059fa
cmp byte [esp + 0x12c], 0
jne 0x405a5e
mov word [esi + 6], bx
lea eax, [esi + 6]
mov edx, 0x3fff
push 0
cmp word [eax], dx
jne 0x405af0
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 0x406300
mov eax, 0x3fff
cmp bx, ax
je 0x405a6c
mov edx, dword [0x4be600]
mov eax, ebx
and eax, 0x3fff
cmp byte [esp + 0x12c], 0
je 0x405a48
cmp ax, word [edx]
jae 0x405a3f
mov edx, dword [0x4c1a24]
movzx eax, ax
movzx eax, word [edx + eax*2]
mov edx, 0x3fff
cmp ax, dx
je 0x405a3f
mov ebx, eax
mov dword [esp + 0x14], ebx
jmp 0x405a5e
cmp byte [esp + 0x1a], 0
jne 0x405a6c
jmp 0x405a5e
cmp ax, word [edx]
jae 0x405a5e
mov edx, dword [0x4c1a24]
movzx eax, ax
mov ax, word [edx + eax*2]
mov word [esi + 6], ax
mov edx, 0x3fff
cmp bx, dx
jne 0x405b46
cmp byte [esp + 0x12c], 0
je 0x4059ba
test cl, cl
jne 0x405ab7
test byte [esi + 0xb], 1
jne 0x405ab7
cmp byte [esi + 8], cl
je 0x405ab7
cmp byte [esp + 0x13], cl
jne 0x405ab7
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 0x404f9d
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 0x406300
lea ecx, [esp + 0x16]
push ecx
add esi, 0xb
push esi
push 1
push eax
call fcn.00409cf0
add esp, 0x14
cmp byte [esp + 0x12], 0
push 0
je 0x405b1e
mov edx, dword [esp + 0x28]
push 0x3fff
push edx
push 0
jmp 0x405d0e
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 0x404fa4
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 0x405b6f
cmp byte [esp + 0x12c], 0
je 0x405b6f
and al, 0xf7
mov byte [esp + 0x12], 1
mov byte [edi], al
mov ecx, dword [0x4be600]
mov ebp, dword [esp + 0x24]
mov eax, ebx
and eax, 0x3fff
cmp ax, word [ecx]
jae 0x405bea
test esi, esi
jne 0x405bea
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.00409cf0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x405be6
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 0x406300
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x114]
mov edx, dword [0x4c0fa4]
mov al, byte [0x4c0e71]
and ebx, 0x3fff
mov dword [esp + 0x20], ebx
cmp edi, edx
jne 0x405c3e
test al, 0x3f
jne 0x405c5e
mov ecx, dword [0x4c1a28]
test al, 0x40
je 0x405c28
cmp byte [ecx + 0x6668], 0
jne 0x405c28
mov byte [0x4bfd8f], 1
test al, al
jns 0x405c64
cmp byte [ecx + 0x6788], 0
jne 0x405c64
mov byte [0x4bfd8e], 1
jmp 0x405c64
test al, 0xc
jne 0x405c5e
mov ecx, dword [0x4c1a28]
test al, 0x40
je 0x405c28
cmp byte [ecx + 0x6668], 0
jne 0x405c28
mov byte [0x4bfd8f], 1
jmp 0x405c64
mov ecx, dword [0x4c1a28]
test al, 4
je 0x405c93
cmp byte [ecx + 0xb888], 0
jne 0x405c93
test edx, edx
je 0x405c7e
mov byte [0x4bfd8d], 1
jmp 0x405cd8
movzx eax, byte [0x4bd395]
push 0xffc3d44d
push 0
push 0
push 0
push eax
jmp 0x405cce
test al, 8
je 0x405cd8
cmp byte [ecx + 0xb9a8], 0
jne 0x405cd8
call fcn.00411600
test al, al
jne 0x405cd8
cmp dword [0x4c0fa4], 0
je 0x405cbb
mov byte [0x4bfd8c], 1
jmp 0x405cd8
movzx ecx, byte [0x4bd395]
push 0xffc3d44d
push 0
push 0
push 0
push ecx
push 2
call fcn.0040eaa0
add esp, 0x18
mov edx, dword [esp + 0x20]
movzx eax, dx
lea ecx, [eax - 0x3ffa]
cmp ecx, 4
ja case.default.0x405cee
jmp dword [ecx*4 + 0x406428]
cmp byte [0x4bfd87], 0
jne case.0x405cee.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 0x406300
mov cl, byte [0x4c0e71]
xor al, al
mov byte [esp + 0x11], al
test cl, 4
je 0x405d48
mov al, 0xa4
jmp 0x405d4f
test cl, 8
je 0x405d53
mov al, 0xa5
mov byte [esp + 0x11], al
cmp byte [0x4bfd87], 0
je 0x405dd1
mov ecx, 0x3ffb
cmp dx, cx
je case.0x405cee.16381
test al, al
movzx eax, al
jne 0x405d76
mov eax, 0x12
push 0xffc3d44d
push 0
push 0
push 0
push eax
push 1
call fcn.0040eaa0
mov edx, dword [esp + 0x34]
add esp, 0x18
cmp byte [edx + 4], 0
je 0x405dc5
mov eax, dword [esp + 0x124]
cmp al, 0x5b
je 0x405dc5
cmp al, 0x5c
je 0x405dc5
cmp byte [esp + 0x12c], 0
jne 0x405dc5
push 0xffc3d44d
push 0
push 0
push 0
push eax
push 1
call fcn.0040eaa0
add esp, 0x18
mov byte [0x4bfd87], 0
jmp 0x40604d
mov al, byte [esp + 0x124]
cmp al, 0xa4
je 0x405de5
mov byte [esp + 0x1a], 0
cmp al, 0xa5
jne 0x405dea
mov byte [esp + 0x1a], 1
cmp al, 0xa0
je 0x405df6
cmp al, 0xa1
je 0x405df6
xor cl, cl
jmp 0x405df8
mov cl, 1
mov byte [esp + 0x1b], cl
cmp al, 0xa2
je 0x405e08
cmp al, 0xa3
je 0x405e08
xor dl, dl
jmp 0x405e0a
mov dl, 1
xor al, al
test byte [0x4c0e71], 0x10
mov byte [esp + 0x20], al
je 0x405e1d
mov al, 0xa0
jmp 0x405e3f
test byte [0x4c0e71], 0x20
je 0x405e2a
mov al, 0xa1
jmp 0x405e3f
cmp byte [esp + 0x12c], 0
jne 0x405e43
test cl, cl
je 0x405e43
mov al, byte [esp + 0x124]
mov byte [esp + 0x20], al
mov cl, byte [0x4c0e71]
mov byte [esp + 0x2f], 0
test cl, 1
je 0x405e5a
mov byte [esp + 0x2f], 0xa2
jmp 0x405e7f
test cl, 2
je 0x405e66
mov byte [esp + 0x2f], 0xa3
jmp 0x405e7f
cmp byte [esp + 0x12c], 0
jne 0x405e7f
test dl, dl
je 0x405e7f
mov cl, byte [esp + 0x124]
mov byte [esp + 0x2f], cl
mov edi, dword [esp + 0x20]
xor bl, bl
test al, al
je 0x405ea1
push 0xffc3d44d
push 0
push 0
push 0
push edi
push 1
call fcn.0040eaa0
add esp, 0x18
mov bl, 1
cmp byte [esp + 0x2f], 0
je 0x405ec2
mov edx, dword [esp + 0x2f]
push 0xffc3d44d
push 0
push 0
push 0
push edx
push 1
call fcn.0040eaa0
add esp, 0x18
cmp byte [esp + 0x1a], 0
je 0x405edc
cmp byte [esp + 0x12c], 0
jne 0x405ee4
mov al, byte [esp + 0x124]
jmp 0x405ee0
mov al, byte [esp + 0x11]
test al, al
jne 0x405efb
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0040eaa0
add esp, 0x18
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0040eaa0
add esp, 0x18
test bl, bl
je 0x405f33
cmp byte [esp + 0x1b], 0
jne 0x405f33
push 0xffc3d44d
push 0
push 0
push 0
push edi
push 0
call fcn.0040eaa0
add esp, 0x18
mov byte [0x4bfd87], 1
jmp 0x40604d
cmp byte [0x4bfd87], 0
jne 0x405f5d
mov eax, dword [esp + 0x12c]
push 0
push 0x3fff
push ebp
push eax
jmp 0x4059d5
cmp byte [esp + 0x12c], 0
jne 0x405f9b
mov al, byte [esp + 0x124]
cmp al, 0xa2
je 0x405f7e
cmp al, 0xa3
je 0x405f7e
cmp al, 0xa0
je 0x405f7e
cmp al, 0xa1
jne 0x405f9b
mov ecx, dword [esp + 0x124]
push 0xffc3d44d
push 0
push 0
push 0
push ecx
push 1
call fcn.0040eaa0
add esp, 0x18
test byte [0x4c0e71], 0xc
je 0x405fbd
cmp byte [esp + 0x12c], 0
je 0x405fd4
mov al, byte [esp + 0x124]
cmp al, 0xa4
je 0x405fbd
cmp al, 0xa5
jne 0x405fd4
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0040eaa0
add esp, 0x18
mov edx, 0x3ffd
xor bl, bl
cmp word [esp + 0x20], dx
jne 0x406004
test byte [0x4c0e71], 0x30
jne 0x406004
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 0
call fcn.0040eaa0
add esp, 0x18
mov bl, 1
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0040eaa0
add esp, 0x18
test bl, bl
je 0x40604d
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
call fcn.0040eaa0
add esp, 0x18
jmp 0x40604d
cmp byte [esi + 0x1e], 5
mov dword [esp + 0x28], eax
jne 0x40604d
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 0x4060bf
test bl, bl
je 0x4061e6
cmp byte [edi + 8], 0
je 0x4060bf
mov edi, dword [esp + 0x128]
mov esi, dword [esp + 0x124]
push 0xffc3d44e
push 0
push 0
push edi
push esi
push 1
call fcn.0040eaa0
push 0xffc3d44d
push 0
push 0
push edi
push esi
push 2
call fcn.0040eaa0
mov edx, dword [esp + 0x58]
push 0
push SysReAllocString
push edx
push ebp
push edi
jmp 0x4050a2
test bl, bl
je 0x4061e6
cmp byte [edi + 4], 0
je 0x406126
cmp byte [edi + 0x10], 0
mov eax, dword [esp + 0x28]
je 0x4060f5
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x124]
push 0
push SysReAllocString
push eax
push ebp
push ecx
push edx
jmp 0x404f96
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 0x406300
cmp byte [esp + 0x12], 0
jne 0x40613a
mov edx, dword [esp + 0x34]
test byte [edx], 1
je 0x40629f
mov esi, dword [esp + 0x114]
cmp esi, dword [0x4c0fa8]
jne 0x406177
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 0x406300
mov eax, dword [edi]
test eax, eax
je 0x406186
cmp dword [eax], 7
je 0x406186
mov al, 1
jmp 0x406188
xor al, al
cmp byte [edi + 0x10], 0
je 0x4061be
cmp byte [esp + 0x33], 0
jne 0x4061be
test al, al
jne 0x4061c2
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x124]
push 0xffc3d44d
push 0
push 0
push ecx
push edx
push 0
call fcn.0040eaa0
add esp, 0x18
jmp 0x406149
test al, al
je 0x406149
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 0x404f9d
mov eax, dword [0x4bfd88]
mov byte [edi + 0xf], 1
test eax, eax
je 0x4061fd
cmp byte [eax + 4], 0
je 0x4061fd
mov byte [eax + 0x11], 2
cmp byte [esp + 0x12], 0
je 0x406240
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 0x406300
mov eax, dword [esp + 0x124]
cmp al, 0xa4
je 0x40624f
cmp al, 0xa5
jne 0x40629f
mov cl, byte [0x4c0e71]
test cl, 0xc0
je 0x406283
test cl, 0x33
jne 0x406283
movzx eax, byte [0x4bd395]
push 0xffc3d44d
push 0
push 0
push 0
push eax
push 2
call fcn.0040eaa0
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.0040eaa0
add esp, 0x18
test bl, bl
jne 0x4062a7
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 0x404f96
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.00406540
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret