Function at 0x404620
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 + 0x24], 0x3fff
cmp eax, 0xffc3d44f
je 0x404661
cmp eax, 0xffc3d44e
je 0x404661
mov byte [esp + 0x12], 0
cmp eax, 0xffc3d44d
jne 0x404666
mov byte [esp + 0x12], 1
mov ecx, dword [0x4c4900]
test ecx, ecx
jne 0x40467d
lea edi, [esp + 0x3c]
mov dword [esp + 0x20], edi
jmp 0x404738
mov eax, dword [0x4c4904]
mov edi, eax
imul edi, edi, 0xd4
inc eax
add edi, ecx
mov dword [esp + 0x20], edi
mov dword [0x4c4904], eax
cmp eax, dword [0x4c03d8]
jl 0x4046a8
mov dword [0x4c4904], 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 [0x4c6e98]
mov dword [0x4c4908], eax
mov dword [esp + 0x38], ecx
fild dword [esp + 0x38]
jns 0x4046d7
fadd dword [0x4bae70]
fdiv qword [0x4bae68]
mov dword [0x4c6e98], eax
fstp dword [edi + 8]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
je 0x404719
cmp esi, dword [0x4c490c]
je 0x404711
mov eax, dword [0x4c3ee8]
push esi
lea edx, [edi + 0xc]
push edx
push 0x418
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x404732
xor ecx, ecx
mov word [edi + 0xc], cx
jmp 0x404732
mov eax, 0x4a0810
lea edx, [edi + 0xc]
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x404723
mov dword [0x4c490c], esi
cmp bl, 0xe7
jne 0x404762
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 0x404777
xor ebp, ebp
mov dword [esp + 0x128], ebp
mov edx, dword [esp + 0x114]
cmp edx, dword [0x4c401c]
jne 0x4047b7
mov bl, byte [esp + 0x134]
and bl, 1
jne 0x404931
cmp byte [esp + 0x12c], bl
movzx ecx, byte [esp + 0x124]
setne al
dec al
and al, 0x80
mov byte [ecx + 0x4c3f08], al
jmp 0x404931
mov ebx, dword [esp + 0x134]
shr ebx, 4
and bl, 1
test ebp, 0x100
jne case.0x4047fe.13
push 0x90
call dword [sym.imp.USER32.dll_GetKeyState]
test al, 1
je case.0x4047fe.13
movzx eax, byte [esp + 0x124]
add eax, 0xfffffff4
cmp eax, 0x62
ja case.0x4047fe.13
movzx edx, byte [eax + 0x4064a8]
jmp dword [edx*4 + 0x406478]
cmp byte [esp + 0x12c], 0
sete al
mov byte [0x4c2ddc], al
jmp case.0x4047fe.13
cmp byte [esp + 0x12c], 0
sete cl
mov byte [0x4c2ddd], cl
jmp case.0x4047fe.13
cmp byte [esp + 0x12c], 0
sete dl
mov byte [0x4c2dde], dl
jmp case.0x4047fe.13
cmp byte [esp + 0x12c], 0
sete al
mov byte [0x4c2ddf], al
jmp case.0x4047fe.13
cmp byte [esp + 0x12c], 0
sete cl
mov byte [0x4c2de0], cl
jmp case.0x4047fe.13
cmp byte [esp + 0x12c], 0
sete dl
mov byte [0x4c2de1], dl
jmp case.0x4047fe.13
cmp byte [esp + 0x12c], 0
sete al
mov byte [0x4c2de2], al
jmp case.0x4047fe.13
cmp byte [esp + 0x12c], 0
sete cl
mov byte [0x4c2de3], cl
jmp case.0x4047fe.13
cmp byte [esp + 0x12c], 0
sete dl
mov byte [0x4c2de4], dl
jmp case.0x4047fe.13
cmp byte [esp + 0x12c], 0
sete al
mov byte [0x4c2de5], al
jmp case.0x4047fe.13
cmp byte [esp + 0x12c], 0
sete cl
mov byte [0x4c2de6], cl
movzx esi, byte [esp + 0x124]
mov eax, dword [0x4c4924]
lea edx, [esi + esi*8]
shl edx, 5
cmp byte [edx + eax + 4], 0
jne 0x404931
test byte [esp + 0x134], 0x10
jne 0x404931
mov ecx, dword [esp + 0x12c]
mov al, byte [esp + 0x124]
push ecx
call fcn.004078c0
add esp, 4
test al, al
je 0x404931
cmp byte [esp + 0x12c], 0
setne dl
dec dl
and dl, 0x80
mov byte [esi + 0x4c3f08], dl
cmp byte [esp + 0x12], 0
je 0x40493c
mov al, 0x69
jmp 0x404948
neg bl
sbb bl, bl
and bl, 0x41
add bl, 0x20
mov al, bl
cmp byte [0x4c4008], 0
cbw
mov word [edi + 4], ax
je 0x4049a9
mov al, byte [esp + 0x124]
cmp al, 0x5b
je 0x404966
cmp al, 0x5c
jne 0x4049a9
cmp byte [esp + 0x12c], 0
jne 0x4049a9
mov ecx, dword [esp + 0x124]
push 0
push SysReAllocString
push 0x3fff
push edi
push ebp
push ecx
xor bl, bl
mov ecx, dword [esp + 0x12c]
mov eax, dword [esp + 0x138]
call fcn.004065a0
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret
cmp byte [0x4c2dfe], 0
je 0x404a68
cmp byte [esp + 0x124], 0x1b
jne 0x404a68
cmp byte [esp + 0x12c], 0
jne 0x404a68
push 0
push str.32771
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x404a68
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 0x404a68
push 0xffc3d44d
push 0
push 0
push 0
push 0x1b
push 0
call fcn.0040edc0
mov dl, byte [0x4c3ee5]
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.0040edc0
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.004065a0
add esp, 0x48
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret
mov edx, dword [0x4c4928]
movzx eax, bp
lea ecx, [eax + eax*8]
shl ecx, 5
mov dword [esp + 0x30], eax
lea eax, [ecx + edx]
mov edx, dword [0x4c4018]
mov cl, byte [eax + 0x12]
mov byte [esp + 0x2c], cl
cmp dword [esp + 0x114], edx
jne 0x404aa0
test cl, cl
je 0x404aa0
mov esi, eax
mov dword [esp + 0x1c], eax
jmp 0x404ab8
movzx eax, byte [esp + 0x124]
lea esi, [eax + eax*8]
shl esi, 5
add esi, dword [0x4c4924]
mov dword [esp + 0x1c], esi
cmp byte [esp + 0x12], 0
je 0x404b1d
cmp dword [esp + 0x130], 0xffc3d44e
jne 0x404af0
cmp byte [esp + 0x12c], 0
je 0x404af0
cmp dword [0x4c2e00], esi
jne 0x404af0
mov byte [esi + 0xc], 0
mov byte [esi + 0xf], 0
mov dword [0x4c2e00], 0
push 0
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x11c]
push 0x3fff
push edi
push eax
mov eax, dword [esp + 0x124]
push ecx
push edx
push eax
jmp 0x406452
cmp byte [esp + 0x12c], 0
jne 0x404b34
mov ecx, 0x3fff
mov byte [esi + 0x10], 0
mov word [esi + 6], cx
mov ebx, dword [esp + 0x114]
cmp ebx, edx
jne 0x404bfb
cmp byte [esp + 0x12c], 0
je 0x404c69
cmp byte [0x4c2e06], 0
mov al, byte [esp + 0x124]
je 0x404b65
cmp al, 0x5b
je 0x404b94
cmp byte [0x4c2e05], 0
je 0x404b72
cmp al, 0x5c
je 0x404b94
cmp byte [0x4c2e04], 0
je 0x404b7f
cmp al, 0xa4
je 0x404b94
cmp byte [0x4c2dff], 0
je 0x404c69
cmp al, 0xa5
jne 0x404c69
movzx eax, al
add eax, 0xffffffa5
cmp eax, 0x4a
ja case.0x404ba6.93
movzx edx, byte [eax + 0x406520]
jmp dword [edx*4 + 0x40650c]
mov byte [0x4c2e06], 0
jmp case.0x404ba6.93
mov byte [0x4c2e05], 0
jmp case.0x404ba6.93
mov byte [0x4c2e04], 0
jmp case.0x404ba6.93
mov byte [0x4c2dff], 0
test byte [0x4c3ee5], 3
jne 0x404c69
movzx eax, byte [0x4c0385]
push 0xffc3d44d
push 0
push 0
push 0
push eax
push 2
call fcn.0040edc0
add esp, 0x18
jmp 0x404c69
mov al, byte [esp + 0x124]
test al, al
jne 0x404c2e
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x11c]
mov eax, dword [esp + 0x118]
push 0
push 0x3fff
push edi
push ecx
push edx
push eax
push ebx
xor cl, cl
jmp 0x406459
cmp al, 1
je 0x404c36
cmp al, 2
jne 0x404c69
cmp dword [0x4c4074], 0
jne 0x406425
push 0
push str.32768
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x404c69
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x4c6004]
je 0x406425
mov edx, dword [0x4c2e00]
mov ecx, dword [0x4c4924]
test edx, edx
je 0x404ca5
cmp edx, esi
je 0x404ca5
cmp byte [esp + 0x12c], 0
jne 0x404ca5
cmp ebx, dword [0x4c4018]
jne 0x404c99
xor eax, eax
cmp byte [esi + 4], al
sete al
jmp 0x404c9d
movzx eax, byte [edx + 4]
test eax, eax
je 0x404ca5
mov byte [edx + 0x11], 1
cmp byte [esi + 8], 0
jne 0x404cc6
cmp byte [esi + 9], 0
jne 0x404cc6
mov ecx, dword [esp + 0x12c]
push 0
push 0x3fff
push edi
push ecx
jmp 0x406441
cmp byte [esp + 0x12c], 0
mov byte [esp + 0x2b], 0
mov dword [esp + 0x14], 0x3fff
mov dword [esp + 0x38], 0
je 0x404d20
mov al, byte [esi + 0xf]
mov dl, byte [esi + 0xc]
mov byte [esp + 0x13], al
movzx eax, word [esi + 6]
mov byte [esp + 0x1b], dl
mov edx, 0x3fff
mov byte [esi + 0xf], 0
cmp ax, dx
je 0x404d12
mov dword [esp + 0x14], eax
mov byte [esp + 0x2b], 1
mov word [esi + 6], dx
mov edx, dword [0x4c2e00]
cmp byte [esp + 0x12c], 0
sete al
mov byte [esi + 0xc], al
mov eax, dword [0x4c4018]
mov byte [esp + 0x12], 0
cmp ebx, eax
jne 0x404da9
cmp byte [esi + 4], 0
je 0x404dcc
cmp byte [ecx + 0xb64c], 0
jne 0x404d54
cmp byte [ecx + 0xb76c], 0
jne 0x404d54
xor eax, eax
jmp 0x404d59
mov eax, 1
cmp byte [ecx + 0xb88c], 0
mov byte [ecx + 0x132c], al
jne 0x404d75
cmp byte [ecx + 0xb9ac], 0
jne 0x404d75
xor eax, eax
jmp 0x404d7a
mov eax, 1
cmp byte [ecx + 0xb40c], 0
mov byte [ecx + 0x144c], al
jne 0x404d9c
cmp byte [ecx + 0xb52c], 0
jne 0x404d9c
xor eax, eax
mov byte [ecx + 0x120c], al
jmp 0x404dcc
mov eax, 1
mov byte [ecx + 0x120c], al
jmp 0x404dcc
test eax, eax
jne 0x404dcc
push 1
call fcn.004113c0
mov edx, dword [0x4c2e00]
add esp, 4
mov byte [0x4c3ee6], al
mov byte [0x4c3ee5], al
mov byte [esp + 0x12], 1
mov eax, dword [esi]
test eax, eax
je 0x404ddc
cmp dword [eax], 7
mov byte [esp + 0x19], 1
je 0x404de1
mov byte [esp + 0x19], 0
mov al, byte [esi + 8]
test al, al
je 0x404f63
cmp byte [esp + 0x12c], 0
jne 0x404f63
test edx, edx
je 0x404e0c
cmp byte [esi + 9], 0
je 0x404e0c
cmp esi, edx
jne 0x404f63
cmp al, 1
jne 0x404e39
cmp byte [esp + 0x2c], 0
mov eax, dword [esp + 0x30]
jne 0x404e23
movzx eax, byte [esp + 0x124]
mov ecx, dword [esp + 0x2c]
push ecx
push eax
call fcn.00409bc0
add esp, 8
test al, al
je 0x404e39
mov bl, 1
jmp 0x404e4c
xor bl, bl
cmp esi, dword [0x4c2e00]
je 0x404e4c
mov dword [0x4c2e00], esi
mov byte [esi + 0x11], bl
cmp byte [esi + 9], 0
je 0x404f02
cmp byte [esp + 0x12], 0
jne 0x404e6c
push 1
mov byte [esp + 0x16], 1
call fcn.004113c0
add esp, 4
mov al, byte [esi + 4]
mov cl, byte [0x4c3ee6]
test al, al
je 0x404e7d
not al
and cl, al
test cl, cl
jne 0x404e85
test bl, bl
je 0x404f02
mov edx, dword [0x4c4018]
cmp dword [esp + 0x114], edx
jne 0x404eb1
cmp byte [esp + 0x2c], 0
je 0x404eb1
movzx eax, cl
mov ecx, dword [0x4c491c]
shl eax, 9
add eax, dword [esp + 0x30]
movzx ecx, word [ecx + eax*2]
jmp 0x404ecb
movzx eax, byte [esp + 0x124]
movzx edx, cl
mov ecx, dword [0x4c4918]
shl edx, 8
add edx, eax
movzx ecx, word [ecx + edx*2]
mov dword [esp + 0x14], ecx
test ecx, 0x4000
je 0x404edd
mov word [esi + 6], cx
jmp 0x404f10
mov edx, dword [0x4c15c4]
mov eax, ecx
and eax, 0x3fff
cmp ax, word [edx]
jae 0x404f06
mov edx, dword [0x4c4920]
movzx eax, ax
mov ax, word [edx + eax*2]
mov word [esi + 6], ax
jmp 0x404f06
mov ecx, dword [esp + 0x14]
mov edx, 0x3fff
cmp cx, dx
jne 0x404f63
test bl, bl
je 0x404f21
or byte [esi + 0xb], 8
mov eax, 0x23
mov word [edi + 4], ax
cmp byte [esi + 4], 0
jne 0x404f3c
test byte [esi + 0xb], 1
jne 0x404f3c
cmp byte [esp + 0x19], 0
jne 0x404f3c
test bl, bl
je 0x404970
mov edx, dword [esp + 0x11c]
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x114]
push 0
push 0x3fff
push edi
push 0
push edx
push eax
push ecx
jmp 0x406452
cmp byte [esi + 9], 0
mov edx, dword [esp + 0x12c]
mov byte [esp + 0x1a], 0
je 0x40500a
test dl, dl
je 0x40500a
cmp dword [0x4c2e00], esi
jne 0x404f9a
cmp byte [esp + 0x13], 0
je 0x40500a
mov dword [0x4c2e00], 0
cmp byte [esi + 0xa], 0
jne 0x405005
mov al, byte [esi + 0xb]
test al, 8
je 0x404fb0
xor cl, cl
and al, 0xf7
mov byte [esi + 0xb], al
jmp 0x404fb2
mov cl, 1
cmp byte [esp + 0x13], 0
je 0x404fdf
test cl, cl
je 0x404fdf
mov edx, dword [esp + 0x124]
mov bl, byte [esp + 0x12c]
push 0
push SysReAllocString
push 0x3fff
push edi
push ebp
push edx
jmp 0x404988
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
push 0
push 0x3fff
push edi
push edx
mov edx, dword [esp + 0x124]
push eax
push ecx
push edx
jmp 0x406452
mov byte [esp + 0x1a], 1
cmp byte [esi + 8], 0
je 0x40522c
test dl, dl
je 0x40522c
cmp dword [0x4c2e00], esi
jne 0x40502e
mov dword [0x4c2e00], 0
cmp byte [esi + 0xd], 0
je 0x40504f
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 1
mov byte [esi + 0xd], 0
call fcn.0040edc0
add esp, 0x18
cmp byte [esi + 0xe], 0
mov ebx, dword [0x4c4924]
je 0x40507c
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
mov byte [esi + 0xe], 0
call fcn.0040edc0
mov ebx, dword [0x4c4924]
add esp, 0x18
mov ecx, dword [esp + 0x14]
mov eax, 0x3fff
cmp cx, ax
jne 0x4050c3
mov al, byte [esi + 0xb]
test al, 8
je 0x4050c3
and al, 0xf7
mov byte [esi + 0xb], al
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x11c]
mov eax, dword [esp + 0x118]
push 0
push 0x3fff
push edi
push ecx
mov ecx, dword [esp + 0x124]
push edx
push eax
push ecx
jmp 0x406452
cmp byte [esp + 0x19], 0
mov al, byte [esi + 0x11]
je 0x40516c
cmp al, 2
jne 0x405137
mov esi, dword [esp + 0x124]
push 0xffc3d44e
push 0
push 0
push ebp
push esi
push 1
call fcn.0040edc0
push 0xffc3d44d
push 0
push 0
push ebp
push esi
push 2
call fcn.0040edc0
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.004065a0
add esp, 0x48
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret
cmp al, 1
jne 0x4051d3
push 0
mov edx, dword [esp + 0x130]
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x11c]
push 0x3fff
push edi
push edx
mov edx, dword [esp + 0x124]
push eax
push ecx
push edx
jmp 0x406452
test al, al
je 0x4051d3
mov edx, 0x3fff
cmp cx, dx
jne 0x4051d3
cmp byte [esi + 4], 0
je 0x40518f
cmp al, 2
jne 0x405096
push 1
jmp 0x404af2
test byte [esi + 0xb], 1
push 0
jne 0x405141
mov eax, dword [esp + 0x128]
push SysReAllocString
push 0x3fff
push edi
push ebp
push eax
mov bl, byte [esp + 0x144]
mov ecx, dword [esp + 0x12c]
mov eax, dword [esp + 0x138]
call fcn.004065a0
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret
cmp byte [esi + 9], 0
jne 0x40521a
cmp byte [esi + 4], 0
jne 0x40513f
test byte [esi + 0xb], 1
jne 0x40513f
cmp byte [esp + 0x19], 0
jne 0x40513f
mov ecx, dword [esp + 0x124]
mov bl, byte [esp + 0x12c]
push 0
push SysReAllocString
push 0x3fff
push edi
push ebp
push ecx
jmp 0x404988
cmp byte [esp + 0x1b], 0
jne 0x405232
cmp byte [esi + 0xa], 0
jne 0x405232
jmp 0x404af0
mov ebx, dword [0x4c4924]
cmp byte [esp + 0x12], 0
mov esi, dword [esp + 0x14]
jne 0x405257
mov ecx, 0x3fff
cmp si, cx
jne 0x405257
push 1
call fcn.004113c0
mov ebx, dword [0x4c4924]
add esp, 4
cmp dword [0x4c2e00], 0
mov byte [esp + 0x13], 0
je 0x405922
cmp byte [esp + 0x12c], 0
je 0x405281
mov edx, dword [esp + 0x1c]
cmp byte [edx + 0xa], 0
je 0x405922
mov eax, 0x3fff
cmp si, ax
jne 0x405bae
mov edi, dword [esp + 0x1c]
xor ebp, ebp
cmp byte [edi + 0x13], 0
jbe 0x405390
lea esi, [edi + 0x16]
mov cl, byte [esi]
movzx eax, cl
lea edx, [eax + eax*8]
shl edx, 5
cmp byte [edx + ebx + 0xc], 0
je 0x4052ef
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x4052db
cmp byte [esp + 0x12c], 0
jne 0x4052fd
mov word [edi + 6], ax
mov eax, 0x3fff
cmp word [esp + 0x14], ax
jne 0x405317
jmp 0x4052ef
cmp byte [esp + 0x12c], 0
jne 0x4052ef
mov edx, eax
mov dword [esp + 0x14], edx
mov byte [esp + 0x12], cl
movzx eax, byte [edi + 0x13]
inc ebp
add esi, 4
cmp ebp, eax
jl 0x4052a2
jmp 0x40530b
movzx ecx, word [esi + 2]
mov dl, byte [esi]
mov dword [esp + 0x14], ecx
mov byte [esp + 0x12], dl
mov eax, 0x3fff
cmp word [esp + 0x14], ax
je 0x405390
movzx ecx, byte [esp + 0x12]
mov eax, ecx
sub eax, 0x10
je 0x405374
dec eax
je 0x405358
dec eax
je 0x40533c
lea ecx, [ecx + ecx*8]
shl ecx, 5
add ecx, ebx
mov dword [0x4c2e00], ecx
jmp 0x405435
xor eax, eax
cmp byte [ebx + 0xb9ac], al
setne al
lea eax, [eax + eax*8 + 0x5c4]
shl eax, 5
add eax, ebx
jmp 0x405430
xor eax, eax
cmp byte [ebx + 0xb76c], al
setne al
lea eax, [eax + eax*8 + 0x5b2]
shl eax, 5
add eax, ebx
jmp 0x405430
xor eax, eax
cmp byte [ebx + 0xb52c], al
setne al
lea eax, [eax + eax*8 + 0x5a0]
shl eax, 5
add eax, ebx
jmp 0x405430
xor ebp, ebp
cmp byte [edi + 0x14], 0
jbe 0x405445
lea esi, [edi + 0xde]
movzx ecx, word [esi]
mov eax, ecx
lea edx, [eax + eax*8]
mov eax, dword [0x4c4928]
shl edx, 5
cmp byte [edx + eax + 0xc], 0
je 0x4053f6
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x4053e0
cmp byte [esp + 0x12c], 0
jne 0x405404
mov ecx, 0x3fff
mov word [edi + 6], ax
cmp word [esp + 0x14], cx
jne 0x40541f
jmp 0x4053f6
cmp byte [esp + 0x12c], 0
jne 0x4053f6
mov edx, eax
mov eax, ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x34], eax
movzx ecx, byte [edi + 0x14]
inc ebp
add esi, 4
cmp ebp, ecx
jl 0x4053a2
jmp 0x405413
movzx edx, word [esi + 2]
movzx eax, word [esi]
mov dword [esp + 0x14], edx
mov dword [esp + 0x34], eax
mov ecx, 0x3fff
cmp word [esp + 0x14], cx
je 0x405445
movzx eax, word [esp + 0x34]
lea eax, [eax + eax*8]
shl eax, 5
add eax, dword [0x4c4928]
mov dword [0x4c2e00], eax
mov edx, 0x3fff
cmp word [esp + 0x14], dx
jne case.default.0x40545b
movzx eax, byte [esp + 0x124]
add eax, 0xffffff60
cmp eax, 5
ja case.default.0x40545b
jmp dword [eax*4 + 0x40656c]
mov al, 0x11
jmp 0x40546c
mov al, 0x12
jmp 0x40546c
mov al, 0x10
movzx eax, al
lea edx, [eax + eax*8]
shl edx, 5
movzx ebp, byte [edx + ebx + 0x13]
add edx, ebx
xor edi, edi
test ebp, ebp
jle 0x4054f2
lea esi, [edx + 0x16]
mov cl, byte [esi]
movzx eax, cl
lea eax, [eax + eax*8]
shl eax, 5
cmp byte [eax + ebx + 0xc], 0
je 0x4054da
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x4054c2
cmp byte [esp + 0x12c], 0
jne 0x4054e4
mov ecx, dword [esp + 0x1c]
mov word [ecx + 6], ax
mov eax, 0x3fff
cmp word [esp + 0x14], ax
jne 0x4054fe
jmp 0x4054da
cmp byte [esp + 0x12c], 0
mov ebx, dword [0x4c4924]
jne 0x4054da
mov dword [esp + 0x14], eax
mov byte [esp + 0x12], cl
inc edi
add esi, 4
cmp edi, ebp
jl 0x405485
jmp 0x4054f2
movzx ecx, word [esi + 2]
mov al, byte [esi]
mov dword [esp + 0x14], ecx
mov byte [esp + 0x12], al
mov ecx, 0x3fff
cmp word [esp + 0x14], cx
je 0x405577
movzx ecx, byte [esp + 0x12]
mov eax, ecx
sub eax, 0x10
je 0x40555b
dec eax
je 0x40553f
dec eax
je 0x405523
lea ecx, [ecx + ecx*8]
shl ecx, 5
add ecx, ebx
mov dword [0x4c2e00], ecx
jmp case.default.0x40545b
xor eax, eax
cmp byte [ebx + 0xb9ac], al
setne al
lea eax, [eax + eax*8 + 0x5c4]
shl eax, 5
add eax, ebx
jmp 0x4055f4
xor eax, eax
cmp byte [ebx + 0xb76c], al
setne al
lea eax, [eax + eax*8 + 0x5b2]
shl eax, 5
add eax, ebx
jmp 0x4055f4
xor eax, eax
cmp byte [ebx + 0xb52c], al
setne al
lea eax, [eax + eax*8 + 0x5a0]
shl eax, 5
add eax, ebx
jmp 0x4055f4
movzx ebp, byte [edx + 0x14]
xor edi, edi
test ebp, ebp
jle case.default.0x40545b
lea esi, [edx + 0xde]
mov edx, dword [esp + 0x14]
jmp 0x405590
movzx ecx, word [esi]
mov ebx, dword [0x4c4928]
mov eax, ecx
lea eax, [eax + eax*8]
shl eax, 5
cmp byte [eax + ebx + 0xc], 0
je 0x40569b
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x40568b
cmp byte [esp + 0x12c], 0
jne 0x4056a9
mov ecx, dword [esp + 0x1c]
mov word [ecx + 6], ax
mov eax, 0x3fff
cmp dx, ax
je 0x40569b
mov dword [esp + 0x14], edx
movzx eax, word [esp + 0x34]
lea eax, [eax + eax*8]
shl eax, 5
add eax, dword [0x4c4928]
mov dword [0x4c2e00], eax
mov eax, dword [esp + 0x14]
mov esi, eax
mov ecx, 0x3fff
and esi, 0x3fff
cmp ax, cx
je 0x4056df
mov edx, dword [0x4c15c4]
cmp si, word [edx]
jae 0x4056d5
mov ebx, dword [esp + 0x12c]
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x130]
lea eax, [esp + 0x14]
push ebx
push eax
add ecx, 0xb
lea esi, [ebp + 4]
lea eax, [esp + 0x1b]
call fcn.00409e10
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
jne 0x4056cb
push eax
push 0x3fff
push ebp
push ebx
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x128]
mov eax, dword [esp + 0x124]
push ecx
mov cl, byte [esp + 0x138]
push edx
push eax
mov eax, dword [esp + 0x144]
jmp 0x40645b
cmp byte [esp + 0x12c], 0
jne 0x40569b
mov edx, eax
mov dword [esp + 0x34], ecx
inc edi
add esi, 4
cmp edi, ebp
jl 0x405590
jmp 0x4056b4
movzx eax, word [esi]
movzx edx, word [esi + 2]
mov dword [esp + 0x34], eax
mov ecx, 0x3fff
mov dword [esp + 0x14], edx
cmp dx, cx
je case.default.0x40545b
jmp 0x4055e3
mov esi, dword [esp + 0x14]
and esi, 0x3fff
mov ecx, dword [0x4c2e00]
mov byte [ecx + 0x11], 2
mov edx, 0x3ffe
cmp si, dx
je 0x4056f7
mov eax, 0x3ffd
cmp si, ax
jne 0x405922
cmp byte [esp + 0x12c], 0
jne 0x405709
mov ecx, dword [esp + 0x1c]
mov byte [ecx + 0xf], 1
test byte [0x4c3ee5], 0xc
jne 0x405729
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0040edc0
add esp, 0x18
mov al, byte [esp + 0x124]
cmp al, 0xa2
je 0x405738
cmp al, 0xa3
jne 0x405765
cmp byte [esp + 0x12c], 0
jne 0x405765
mov edx, dword [esp + 0x128]
mov eax, dword [esp + 0x124]
push 0xffc3d44d
push 0
push 0
push edx
push eax
push 1
call fcn.0040edc0
add esp, 0x18
mov ecx, dword [0x4c2e00]
mov edx, 0x3ffd
mov byte [ecx + 0xd], 1
cmp si, dx
jne 0x4057a7
test byte [0x4c3ee5], 0x30
jne 0x405799
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 0
call fcn.0040edc0
add esp, 0x18
mov eax, dword [0x4c2e00]
mov byte [eax + 0xe], 1
jmp 0x405837
mov ecx, 0x3ffe
cmp si, cx
jne 0x405837
mov al, byte [esp + 0x124]
cmp al, 0xa0
je 0x4057c4
cmp al, 0xa1
jne 0x4057f1
cmp byte [esp + 0x12c], 0
jne 0x4057f1
mov edx, dword [esp + 0x128]
mov eax, dword [esp + 0x124]
push 0xffc3d44d
push 0
push 0
push edx
push eax
push 1
call fcn.0040edc0
add esp, 0x18
test byte [0x4c3ee5], 0x10
je 0x405814
push 0xffc3d44d
push 0
push 0
push 0
push 0xa0
push 1
call fcn.0040edc0
add esp, 0x18
test byte [0x4c3ee5], 0x20
je 0x405837
push 0xffc3d44d
push 0
push 0
push 0
push 0xa1
push 1
call fcn.0040edc0
add esp, 0x18
test byte [0x4c3ee5], 1
je 0x40585a
push 0xffc3d44d
push 0
push 0
push 0
push 0xa2
push 1
call fcn.0040edc0
add esp, 0x18
test byte [0x4c3ee5], 2
je 0x40587d
push 0xffc3d44d
push 0
push 0
push 0
push 0xa3
push 1
call fcn.0040edc0
add esp, 0x18
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0040edc0
mov ecx, 0x3ffd
add esp, 0x18
cmp si, cx
jne 0x4058dd
mov edx, dword [0x4c2e00]
cmp byte [edx + 0xe], 0
je 0x4058dd
mov al, byte [esp + 0x124]
cmp al, 0x60
jb 0x4058b9
cmp al, 0x69
jbe 0x4058bd
cmp al, 0x6e
jne 0x4058dd
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
call fcn.0040edc0
mov eax, dword [0x4c2e00]
add esp, 0x18
mov byte [eax + 0xe], 0
cmp byte [esp + 0x12c], 0
mov eax, dword [esp + 0x20]
mov ecx, 0x68
mov word [eax + 4], cx
jne 0x4058fc
mov edx, dword [esp + 0x1c]
mov byte [edx + 0x10], 1
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x124]
push 0
push SysReAllocString
push 0x3fff
push eax
push ecx
push edx
jmp 0x4051ab
mov esi, dword [esp + 0x14]
mov eax, 0x3fff
cmp si, ax
jne 0x405bae
mov edi, dword [esp + 0x1c]
mov cl, byte [edi + 4]
mov al, byte [0x4c3ee6]
test cl, cl
je 0x405948
not cl
and al, cl
mov ebp, dword [esp + 0x114]
mov edx, dword [0x4c4018]
cmp ebp, edx
jne 0x40597d
cmp byte [esp + 0x2c], 0
je 0x40597d
mov esi, dword [0x4c491c]
movzx ecx, al
shl ecx, 9
add ecx, dword [esp + 0x30]
movzx esi, word [esi + ecx*2]
mov cl, byte [esp + 0x124]
jmp 0x405999
mov cl, byte [esp + 0x124]
movzx esi, al
movzx ebx, cl
shl esi, 8
add esi, ebx
mov ebx, dword [0x4c4918]
movzx esi, word [ebx + esi*2]
mov ebx, 0x3fff
mov dword [esp + 0x14], esi
cmp si, bx
jne 0x405a0e
cmp byte [0x4c2dfe], 0
je 0x405a0e
cmp cl, 9
je 0x405a0e
and al, 0xf3
cmp ebp, edx
jne 0x4059d7
cmp byte [esp + 0x2c], 0
je 0x4059d7
movzx edx, al
mov eax, dword [0x4c491c]
shl edx, 9
add edx, dword [esp + 0x30]
movzx esi, word [eax + edx*2]
jmp 0x4059ec
movzx edx, al
movzx eax, cl
mov ecx, dword [0x4c4918]
shl edx, 8
add edx, eax
movzx esi, word [ecx + edx*2]
mov eax, esi
and eax, 0x3fff
mov ecx, 0x3ff9
mov dword [esp + 0x14], esi
cmp ax, cx
jbe 0x405a08
mov edx, ebx
cmp ax, dx
jb 0x405a0e
mov esi, ebx
mov dword [esp + 0x14], esi
test esi, 0x4000
je 0x405a68
cmp byte [esp + 0x12c], 0
jne 0x405acb
mov word [edi + 6], si
lea eax, [edi + 6]
mov ecx, ebx
cmp word [eax], cx
jne 0x405b64
mov edx, dword [esp + 0x20]
push 0
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x11c]
push 0x3fff
push edx
push 0
push eax
mov eax, dword [esp + 0x13c]
push ecx
mov cl, byte [esp + 0x13c]
push ebp
jmp 0x40645b
mov eax, ebx
cmp si, ax
je 0x405ad6
mov eax, esi
and eax, 0x3fff
cmp byte [esp + 0x12c], 0
je 0x405ab0
mov edx, dword [0x4c15c4]
cmp ax, word [edx]
jae 0x405aa7
mov ecx, dword [0x4c4920]
movzx eax, ax
movzx eax, word [ecx + eax*2]
mov edx, ebx
cmp ax, dx
je 0x405aa7
mov esi, eax
mov dword [esp + 0x14], esi
jmp 0x405acb
cmp byte [esp + 0x1a], 0
jne 0x405ad6
jmp 0x405acb
mov ecx, dword [0x4c15c4]
cmp ax, word [ecx]
jae 0x405acb
movzx edx, ax
mov eax, dword [0x4c4920]
mov cx, word [eax + edx*2]
mov word [edi + 6], cx
mov edx, ebx
cmp si, dx
jne 0x405bae
cmp byte [esp + 0x12c], 0
je 0x405a28
cmp byte [edi + 4], 0
jne 0x405b2c
test byte [edi + 0xb], 1
jne 0x405b2c
cmp byte [edi + 8], 0
je 0x405b2c
cmp byte [esp + 0x19], 0
jne 0x405b2c
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x124]
mov bl, byte [esp + 0x12c]
push 0
push SysReAllocString
push 0x3fff
push eax
push ecx
push edx
mov ecx, ebp
jmp 0x40498f
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x11c]
push 0
push 0x3fff
push eax
mov eax, dword [esp + 0x124]
push ecx
mov cl, byte [esp + 0x134]
push edx
push eax
mov eax, dword [esp + 0x140]
push ebp
jmp 0x40645b
push 1
lea ecx, [edi + 0xb]
push eax
xor esi, esi
lea eax, [esp + 0x1b]
xor edi, edi
call fcn.00409e10
mov edx, dword [esp + 0x28]
add esp, 8
cmp byte [esp + 0x13], 0
push edi
jne 0x405a3c
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x128]
push SysReAllocString
push 0x3fff
push edx
push eax
push ecx
xor bl, bl
mov ecx, ebp
jmp 0x4051b9
mov ebp, dword [esp + 0x1c]
mov al, byte [ebp + 0xb]
add ebp, 0xb
mov dword [esp + 0x34], ebp
test al, 8
je 0x405bd4
cmp byte [esp + 0x12c], 0
je 0x405bd4
and al, 0xf7
mov byte [esp + 0x13], 1
mov byte [ebp], al
mov edx, dword [0x4c15c4]
mov ebx, dword [esp + 0x20]
and esi, 0x3fff
cmp si, word [edx]
jae 0x405d10
cmp dword [esp + 0x38], 0
jne 0x405d10
mov eax, dword [esp + 0x12c]
mov edi, dword [esp + 0x130]
push eax
lea ecx, [esp + 0x18]
push ecx
lea esi, [ebx + 4]
lea eax, [esp + 0x1b]
mov ecx, ebp
call fcn.00409e10
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
jne 0x405d10
cmp byte [esp + 0x12c], al
je 0x405c78
mov edx, dword [esp + 0x1c]
push eax
cmp byte [edx + 0x10], al
je 0x405c65
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x128]
push SysReAllocString
push 0x3fff
mov eax, ebx
mov bl, byte [esp + 0x138]
push eax
push ecx
push edx
jmp 0x404988
mov eax, dword [esp + 0x130]
push 0x3fff
push ebx
push eax
jmp 0x405660
mov eax, dword [esp + 0x1c]
add eax, 6
mov ecx, 0x3fff
cmp word [eax], cx
jne 0x405cbe
push 0
mov edx, dword [esp + 0x120]
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
push 0x3fff
push ebx
push 0
push edx
push eax
mov eax, dword [esp + 0x140]
push ecx
mov cl, byte [esp + 0x140]
jmp 0x40645b
push 1
push eax
xor esi, esi
lea eax, [esp + 0x1b]
mov ecx, ebp
xor edi, edi
mov byte [esp + 0x1b], 0
call fcn.00409e10
add esp, 8
cmp byte [esp + 0x13], 0
push edi
jne 0x405c8b
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x12c]
and byte [ebp], 0xf7
push SysReAllocString
push 0x3fff
push eax
mov byte [edx + 0x10], 1
mov edx, dword [esp + 0x134]
push ecx
push edx
jmp 0x404986
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x114]
mov esi, dword [0x4c4018]
mov dl, byte [0x4c3ee5]
and ebp, 0x3fff
cmp edi, esi
jne 0x405d66
test dl, 0x3f
jne 0x405d87
mov eax, dword [0x4c4924]
test dl, 0x40
je 0x405d50
cmp byte [eax + 0x6668], 0
jne 0x405d50
mov byte [0x4c2e06], 1
test dl, dl
jns 0x405d8c
cmp byte [eax + 0x6788], 0
jne 0x405d8c
mov byte [0x4c2e05], 1
jmp 0x405d8c
test dl, 0xc
jne 0x405d87
mov eax, dword [0x4c4924]
test dl, 0x40
je 0x405d50
cmp byte [eax + 0x6668], 0
jne 0x405d50
mov byte [0x4c2e06], 1
jmp 0x405d8c
mov eax, dword [0x4c4924]
test dl, 4
je 0x405dbc
cmp byte [eax + 0xb888], 0
jne 0x405dbc
test esi, esi
je 0x405da7
mov byte [0x4c2e04], 1
jmp 0x405e08
movzx eax, byte [0x4c0385]
push 0xffc3d44d
push 0
push 0
push 0
push eax
jmp 0x405df8
test dl, 8
je 0x405e08
cmp byte [eax + 0xb9a8], 0
jne 0x405e08
call fcn.00411920
test al, al
jne 0x405e02
cmp dword [0x4c4018], 0
je 0x405de5
mov byte [0x4c2dff], 1
jmp 0x405e02
movzx ecx, byte [0x4c0385]
push 0xffc3d44d
push 0
push 0
push 0
push ecx
push 2
call fcn.0040edc0
add esp, 0x18
mov dl, byte [0x4c3ee5]
mov eax, ebp
lea ecx, [eax - 0x3ffa]
cmp ecx, 4
ja case.default.0x405e19
jmp dword [ecx*4 + 0x406584]
cmp byte [0x4c2dfe], 0
jne case.0x405e19.16379
mov edx, dword [esp + 0x12c]
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
push 0
push 0x3fff
push ebx
push edx
push eax
mov eax, dword [esp + 0x13c]
push ecx
mov cl, byte [esp + 0x13c]
push edi
jmp 0x40645b
xor al, al
mov byte [esp + 0x12], al
test dl, 4
je 0x405e6c
mov al, 0xa4
jmp 0x405e73
test dl, 8
je 0x405e77
mov al, 0xa5
mov byte [esp + 0x12], al
cmp byte [0x4c2dfe], 0
je 0x405ef5
mov ecx, 0x3ffb
cmp bp, cx
je case.0x405e19.16381
test al, al
movzx eax, al
jne 0x405e9a
mov eax, 0x12
push 0xffc3d44d
push 0
push 0
push 0
push eax
push 1
call fcn.0040edc0
mov edx, dword [esp + 0x34]
add esp, 0x18
cmp byte [edx + 4], 0
je 0x405ee9
mov eax, dword [esp + 0x124]
cmp al, 0x5b
je 0x405ee9
cmp al, 0x5c
je 0x405ee9
cmp byte [esp + 0x12c], 0
jne 0x405ee9
push 0xffc3d44d
push 0
push 0
push 0
push eax
push 1
call fcn.0040edc0
add esp, 0x18
mov byte [0x4c2dfe], 0
jmp 0x406194
mov al, byte [esp + 0x124]
cmp al, 0xa4
je 0x405f09
mov byte [esp + 0x1a], 0
cmp al, 0xa5
jne 0x405f0e
mov byte [esp + 0x1a], 1
cmp al, 0xa0
je 0x405f1a
cmp al, 0xa1
je 0x405f1a
xor cl, cl
jmp 0x405f1c
mov cl, 1
mov byte [esp + 0x1b], cl
cmp al, 0xa2
je 0x405f2c
cmp al, 0xa3
je 0x405f2c
xor dl, dl
jmp 0x405f2e
mov dl, 1
xor al, al
test byte [0x4c3ee5], 0x10
mov byte [esp + 0x30], al
je 0x405f41
mov al, 0xa0
jmp 0x405f63
test byte [0x4c3ee5], 0x20
je 0x405f4e
mov al, 0xa1
jmp 0x405f63
cmp byte [esp + 0x12c], 0
jne 0x405f67
test cl, cl
je 0x405f67
mov al, byte [esp + 0x124]
mov byte [esp + 0x30], al
mov cl, byte [0x4c3ee5]
mov byte [esp + 0x2c], 0
test cl, 1
je 0x405f7e
mov byte [esp + 0x2c], 0xa2
jmp 0x405fa3
test cl, 2
je 0x405f8a
mov byte [esp + 0x2c], 0xa3
jmp 0x405fa3
cmp byte [esp + 0x12c], 0
jne 0x405fa3
test dl, dl
je 0x405fa3
mov cl, byte [esp + 0x124]
mov byte [esp + 0x2c], cl
mov esi, dword [esp + 0x30]
xor bl, bl
test al, al
je 0x405fc5
push 0xffc3d44d
push 0
push 0
push 0
push esi
push 1
call fcn.0040edc0
add esp, 0x18
mov bl, 1
cmp byte [esp + 0x2c], 0
je 0x405fe6
mov edx, dword [esp + 0x2c]
push 0xffc3d44d
push 0
push 0
push 0
push edx
push 1
call fcn.0040edc0
add esp, 0x18
cmp byte [esp + 0x1a], 0
je 0x406000
cmp byte [esp + 0x12c], 0
jne 0x406008
mov al, byte [esp + 0x124]
jmp 0x406004
mov al, byte [esp + 0x12]
test al, al
jne 0x40601f
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0040edc0
add esp, 0x18
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0040edc0
add esp, 0x18
test bl, bl
je 0x406057
cmp byte [esp + 0x1b], 0
jne 0x406057
push 0xffc3d44d
push 0
push 0
push 0
push esi
push 0
call fcn.0040edc0
add esp, 0x18
mov byte [0x4c2dfe], 1
jmp 0x406194
cmp byte [0x4c2dfe], 0
jne 0x4060a0
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0x118]
push 0
push 0x3fff
push ebx
push eax
mov eax, dword [esp + 0x138]
push ecx
mov cl, byte [esp + 0x138]
push edx
push edi
jmp 0x40645b
cmp byte [esp + 0x12c], 0
mov al, byte [esp + 0x124]
jne 0x4060eb
cmp al, 0xa2
je 0x4060c1
cmp al, 0xa3
je 0x4060c1
cmp al, 0xa0
je 0x4060c1
cmp al, 0xa1
jne 0x4060eb
mov eax, dword [esp + 0x124]
push 0xffc3d44d
push 0
push 0
push 0
push eax
push 1
call fcn.0040edc0
mov dl, byte [0x4c3ee5]
mov al, byte [esp + 0x13c]
add esp, 0x18
test dl, 0xc
je 0x406102
cmp byte [esp + 0x12c], 0
je 0x406119
cmp al, 0xa4
je 0x406102
cmp al, 0xa5
jne 0x406119
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0040edc0
add esp, 0x18
mov ecx, 0x3ffd
xor bl, bl
cmp bp, cx
jne 0x406147
test byte [0x4c3ee5], 0x30
jne 0x406147
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 0
call fcn.0040edc0
add esp, 0x18
mov bl, 1
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0040edc0
add esp, 0x18
test bl, bl
je 0x406194
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
call fcn.0040edc0
add esp, 0x18
jmp 0x406194
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
cmp byte [eax + 0x1e], 5
jne 0x406194
movzx edx, word [eax + 0x1c]
shl edx, 0x10
or dword [esp + 0x24], edx
cmp byte [esp + 0x19], 0
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x12c]
mov edi, dword [esp + 0x1c]
mov eax, 0x68
mov word [ebp + 4], ax
je 0x406206
test bl, bl
je 0x406364
cmp byte [edi + 8], 0
je 0x406206
mov edi, dword [esp + 0x128]
mov esi, dword [esp + 0x124]
push 0xffc3d44e
push 0
push 0
push edi
push esi
push 1
call fcn.0040edc0
push 0xffc3d44d
push 0
push 0
push edi
push esi
push 2
call fcn.0040edc0
mov ecx, dword [esp + 0x54]
push 0
push SysReAllocString
push ecx
push ebp
push edi
jmp 0x40510e
test bl, bl
je 0x406364
cmp byte [edi + 4], 0
je 0x406273
cmp byte [edi + 0x10], 0
mov edx, dword [esp + 0x24]
je 0x406243
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x124]
mov bl, byte [esp + 0x12c]
push 0
push SysReAllocString
push edx
push ebp
push eax
push ecx
jmp 0x404988
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
push 1
push edx
mov edx, dword [esp + 0x11c]
push ebp
push ebx
push eax
mov eax, dword [esp + 0x13c]
push ecx
mov cl, byte [esp + 0x13c]
push edx
jmp 0x40645b
cmp byte [esp + 0x13], 0
jne 0x406287
mov eax, dword [esp + 0x34]
test byte [eax], 1
je 0x4063f4
mov esi, dword [esp + 0x114]
cmp esi, dword [0x4c401c]
jne 0x4062c3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x11c]
mov eax, dword [esp + 0x118]
push 0
push ecx
mov cl, byte [esp + 0x12c]
push ebp
push ebx
push edx
push eax
mov eax, dword [esp + 0x140]
push esi
jmp 0x40645b
mov eax, dword [edi]
test eax, eax
je 0x4062d2
cmp dword [eax], 7
je 0x4062d2
mov al, 1
jmp 0x4062d4
xor al, al
cmp byte [edi + 0x10], 0
je 0x406335
cmp byte [esp + 0x2b], 0
jne 0x406335
test al, al
jne 0x406339
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x124]
push 0xffc3d44d
push 0
push 0
push ecx
push edx
push 0
call fcn.0040edc0
add esp, 0x18
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0x118]
push 0
push eax
mov eax, dword [esp + 0x130]
push ebp
push ebx
push ecx
mov cl, byte [esp + 0x138]
push edx
push esi
jmp 0x40645b
test al, al
je 0x406308
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x124]
mov bl, byte [esp + 0x12c]
push 0
push SysReAllocString
push eax
push ebp
push ecx
push edx
mov ecx, esi
jmp 0x40498f
mov eax, dword [0x4c2e00]
mov byte [edi + 0xf], 1
test eax, eax
je 0x40637b
cmp byte [eax + 4], 0
je 0x40637b
mov byte [eax + 0x11], 2
cmp byte [esp + 0x13], 0
je 0x406395
mov eax, dword [esp + 0x34]
or byte [eax], 8
mov eax, dword [esp + 0x24]
push 0
push eax
jmp 0x40565e
mov eax, dword [esp + 0x124]
cmp al, 0xa4
je 0x4063a4
cmp al, 0xa5
jne 0x4063f4
mov cl, byte [0x4c3ee5]
test cl, 0xc0
je 0x4063d8
test cl, 0x33
jne 0x4063d8
movzx ecx, byte [0x4c0385]
push 0xffc3d44d
push 0
push 0
push 0
push ecx
push 2
call fcn.0040edc0
mov eax, dword [esp + 0x13c]
add esp, 0x18
mov edx, dword [esp + 0x128]
push 0xffc3d44d
push 0
push 0
push edx
push eax
push 1
call fcn.0040edc0
add esp, 0x18
test bl, bl
jne 0x4063fc
mov byte [edi + 0x10], 1
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x124]
mov bl, byte [esp + 0x12c]
push 0
push SysReAllocString
push eax
push ebp
push ecx
push edx
jmp 0x404988
mov eax, dword [esp + 0x12c]
push 0
push 0x3fff
test al, al
sete cl
push edi
mov byte [esi + 0xf], 0
mov byte [esi + 0xc], cl
push eax
mov edx, dword [esp + 0x12c]
mov eax, dword [esp + 0x128]
push edx
push eax
push ebx
mov cl, byte [esp + 0x140]
mov eax, ebp
mov edx, dword [esp + 0x13c]
call fcn.004066a0
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret