Function at 0x404b30
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x104
mov eax, dword [esp + 0x124]
push ebx
mov ebx, dword [esp + 0x124]
push ebp
push esi
push edi
mov edi, dword [esp + 0x12c]
mov dword [esp + 0x28], 0x3fff
cmp eax, 0xffc3d44f
je 0x404b71
cmp eax, 0xffc3d44e
je 0x404b71
mov byte [esp + 0x1a], 0
cmp eax, 0xffc3d44d
jne 0x404b76
mov byte [esp + 0x1a], 1
mov ecx, dword [0x4c8ebc]
test ecx, ecx
jne 0x404b8d
lea ebp, [esp + 0x40]
mov dword [esp + 0x3c], ebp
jmp 0x404c49
mov eax, dword [0x4c8ec0]
mov ebp, eax
imul ebp, ebp, 0xd4
inc eax
add ebp, ecx
mov dword [esp + 0x3c], ebp
mov dword [0x4c8ec0], eax
cmp eax, dword [0x4c48b8]
jl 0x404bb8
mov dword [0x4c8ec0], 0
mov al, byte [esp + 0x128]
mov byte [ebp], al
mov byte [ebp + 6], bl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
sub ecx, dword [0x4cb15c]
mov dword [0x4c8ec4], eax
mov dword [esp + 0x34], ecx
fild dword [esp + 0x34]
jns 0x404be8
fadd dword [0x4be8a0]
fdiv qword [0x4be898]
mov dword [0x4cb15c], eax
fstp dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
je 0x404c2a
cmp esi, dword [0x4c8ec8]
je 0x404c22
mov eax, dword [0x4c84a8]
push esi
lea edx, [ebp + 0xc]
push edx
push 0x418
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x404c43
xor ecx, ecx
mov word [ebp + 0xc], cx
jmp 0x404c43
mov eax, 0x4a38d0
lea edx, [ebp + 0xc]
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x404c34
mov dword [0x4c8ec8], esi
mov al, byte [esp + 0x128]
cmp al, 0xe7
jne 0x404ca3
mov ecx, dword [esp + 0x124]
movzx eax, word [ecx + 4]
push 0x3fff
push ebp
push ebx
mov edx, 0x55
mov word [ebp + 4], dx
mov edx, dword [esp + 0x12c]
push 0xe7
push edx
mov edx, dword [esp + 0x130]
push edx
mov edx, dword [esp + 0x130]
push edx
mov word [ebp + 2], ax
call fcn.00406940
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret
add al, 0x64
mov word [ebp + 2], di
cmp al, 3
ja 0x404cb6
xor edi, edi
mov dword [esp + 0x12c], edi
mov eax, dword [esp + 0x118]
cmp eax, dword [0x4c85dc]
jne 0x404cf7
mov bl, byte [esp + 0x138]
and bl, 1
jne 0x404e72
cmp byte [esp + 0x130], bl
movzx edx, byte [esp + 0x128]
setne cl
dec cl
and cl, 0x80
mov byte [edx + 0x4c84c8], cl
jmp 0x404e72
mov ebx, dword [esp + 0x138]
shr ebx, 4
and bl, 1
test edi, 0x100
jne case.0x404d3e.13
push 0x90
call dword [sym.imp.USER32.dll_GetKeyState]
test al, 1
je case.0x404d3e.13
movzx eax, byte [esp + 0x128]
add eax, 0xfffffff4
cmp eax, 0x62
ja case.0x404d3e.13
movzx eax, byte [eax + 0x406780]
jmp dword [eax*4 + 0x406750]
cmp byte [esp + 0x130], 0
sete cl
mov byte [0x4c7394], cl
jmp case.0x404d3e.13
cmp byte [esp + 0x130], 0
sete dl
mov byte [0x4c7395], dl
jmp case.0x404d3e.13
cmp byte [esp + 0x130], 0
sete al
mov byte [0x4c7396], al
jmp case.0x404d3e.13
cmp byte [esp + 0x130], 0
sete cl
mov byte [0x4c7397], cl
jmp case.0x404d3e.13
cmp byte [esp + 0x130], 0
sete dl
mov byte [0x4c7398], dl
jmp case.0x404d3e.13
cmp byte [esp + 0x130], 0
sete al
mov byte [0x4c7399], al
jmp case.0x404d3e.13
cmp byte [esp + 0x130], 0
sete cl
mov byte [0x4c739a], cl
jmp case.0x404d3e.13
cmp byte [esp + 0x130], 0
sete dl
mov byte [0x4c739b], dl
jmp case.0x404d3e.13
cmp byte [esp + 0x130], 0
sete al
mov byte [0x4c739c], al
jmp case.0x404d3e.13
cmp byte [esp + 0x130], 0
sete cl
mov byte [0x4c739d], cl
jmp case.0x404d3e.13
cmp byte [esp + 0x130], 0
sete dl
mov byte [0x4c739e], dl
movzx esi, byte [esp + 0x128]
mov ecx, dword [0x4c8ee0]
lea eax, [esi + esi*8]
shl eax, 5
cmp byte [eax + ecx + 4], 0
jne 0x404e72
test byte [esp + 0x138], 0x10
jne 0x404e72
mov edx, dword [esp + 0x130]
mov al, byte [esp + 0x128]
push edx
call fcn.00407d70
add esp, 4
test al, al
je 0x404e72
cmp byte [esp + 0x130], 0
setne al
dec al
and al, 0x80
mov byte [esi + 0x4c84c8], al
cmp byte [esp + 0x1a], 0
je 0x404e7d
mov al, 0x69
jmp 0x404e87
neg bl
sbb bl, bl
and bl, 0x41
lea eax, [ebx + 0x20]
cmp byte [0x4c85c8], 0
movsx cx, al
mov word [ebp + 4], cx
je 0x404ec5
mov al, byte [esp + 0x128]
cmp al, 0x5b
je 0x404ea7
cmp al, 0x5c
jne 0x404ec5
cmp byte [esp + 0x130], 0
jne 0x404ec5
push 0
push SysReAllocString
push 0x3fff
push 0
push edi
jmp 0x406724
cmp byte [0x4c73b6], 0
je 0x404f7e
cmp byte [esp + 0x128], 0x1b
jne 0x404f7e
cmp byte [esp + 0x130], 0
jne 0x404f7e
push 0
push str.32771
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x404f7e
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 0x404f7e
push 0xffc3d44d
push 0
push 0
push 0
push 0x1b
push 0
call fcn.0040f350
mov al, byte [0x4c84a5]
push 0xffc3d44d
shr al, 3
push 0
and al, 1
or al, 0xa4
push 0
movzx ecx, al
push 0
push ecx
push 1
call fcn.0040f350
push 0
push SysReAllocString
push 0x3fff
push 0
push edi
push 0x1b
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x160]
mov ebx, ebp
call fcn.00406810
add esp, 0x48
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret
movzx eax, di
lea edx, [eax + eax*8]
mov dword [esp + 0x2c], eax
mov eax, dword [0x4c8ee4]
shl edx, 5
mov cl, byte [eax + edx + 0x12]
add eax, edx
mov edx, dword [0x4c85d8]
mov byte [esp + 0x23], cl
cmp dword [esp + 0x118], edx
jne 0x404fb5
test cl, cl
je 0x404fb5
mov esi, eax
mov dword [esp + 0x1c], eax
jmp 0x404fcd
movzx eax, byte [esp + 0x128]
lea esi, [eax + eax*8]
shl esi, 5
add esi, dword [0x4c8ee0]
mov dword [esp + 0x1c], esi
cmp byte [esp + 0x1a], 0
je 0x40504f
cmp dword [esp + 0x134], 0xffc3d44e
jne 0x405005
cmp byte [esp + 0x130], 0
je 0x405005
cmp dword [0x4c73b8], esi
jne 0x405005
mov byte [esi + 0xc], 0
mov byte [esi + 0xf], 0
mov dword [0x4c73b8], 0
mov eax, dword [esp + 0x130]
push 0x3fff
push ebp
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
mov eax, edi
mov ecx, dword [esp + 0x140]
call fcn.00406940
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret
cmp byte [esp + 0x130], 0
jne 0x405066
mov edx, 0x3fff
mov byte [esi + 0x10], 0
mov word [esi + 6], dx
mov ebx, dword [esp + 0x118]
cmp ebx, dword [0x4c85dc]
jne 0x405143
mov al, byte [esp + 0x128]
test al, al
jne 0x4050c1
mov eax, dword [esp + 0x130]
push 0x3fff
push ebp
push eax
push 0
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x12c]
push ecx
push edx
push ebx
mov ecx, dword [esp + 0x140]
mov eax, edi
call fcn.00406940
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret
cmp al, 1
je 0x4050c9
cmp al, 2
jne 0x405143
cmp dword [0x4c8638], 0
jne 0x4050f4
push 0
push str.32768
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x405143
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x4ca5c0]
jne 0x405143
mov eax, dword [esp + 0x130]
mov edx, dword [esp + 0x128]
push 0x3fff
push ebp
push eax
test al, al
mov eax, dword [esp + 0x12c]
sete cl
push edx
mov byte [esi + 0xc], cl
mov ecx, dword [esp + 0x12c]
push eax
push ecx
mov ecx, dword [esp + 0x13c]
push ebx
mov eax, edi
mov byte [esi + 0xf], 0
call fcn.00406940
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret
mov edx, dword [0x4c73b8]
mov ecx, dword [0x4c8ee0]
test edx, edx
je 0x40517f
cmp edx, esi
je 0x40517f
cmp byte [esp + 0x130], 0
jne 0x40517f
cmp ebx, dword [0x4c85d8]
jne 0x405173
xor eax, eax
cmp byte [esi + 4], al
sete al
jmp 0x405177
movzx eax, byte [edx + 4]
test eax, eax
je 0x40517f
mov byte [edx + 0x11], 1
cmp byte [esi + 8], 0
jne 0x4051a6
cmp byte [esi + 9], 0
jne 0x4051a6
mov edx, dword [esp + 0x130]
mov eax, dword [esp + 0x128]
push 0x3fff
push ebp
push edx
push eax
jmp 0x405094
cmp byte [esp + 0x130], 0
mov dword [esp + 0x14], 0x3fff
mov dword [esp + 0x30], 0
je 0x4051f6
mov al, byte [esi + 0xc]
mov dl, byte [esi + 0xf]
mov byte [esp + 0x22], al
movzx eax, word [esi + 6]
mov byte [esp + 0x12], dl
mov edx, 0x3fff
mov byte [esi + 0xf], 0
cmp ax, dx
je 0x4051e8
mov dword [esp + 0x14], eax
mov word [esi + 6], dx
mov edx, dword [0x4c73b8]
cmp byte [esp + 0x130], 0
sete al
mov byte [esi + 0xc], al
mov eax, dword [0x4c85d8]
mov byte [esp + 0x13], 0
cmp ebx, eax
jne 0x40527f
cmp byte [esi + 4], 0
je 0x4052a2
cmp byte [ecx + 0xb64c], 0
jne 0x40522a
cmp byte [ecx + 0xb76c], 0
jne 0x40522a
xor eax, eax
jmp 0x40522f
mov eax, 1
cmp byte [ecx + 0xb88c], 0
mov byte [ecx + 0x132c], al
jne 0x40524b
cmp byte [ecx + 0xb9ac], 0
jne 0x40524b
xor eax, eax
jmp 0x405250
mov eax, 1
cmp byte [ecx + 0xb40c], 0
mov byte [ecx + 0x144c], al
jne 0x405272
cmp byte [ecx + 0xb52c], 0
jne 0x405272
xor eax, eax
mov byte [ecx + 0x120c], al
jmp 0x4052a2
mov eax, 1
mov byte [ecx + 0x120c], al
jmp 0x4052a2
test eax, eax
jne 0x4052a2
push 1
call fcn.004118d0
mov edx, dword [0x4c73b8]
add esp, 4
mov byte [0x4c84a6], al
mov byte [0x4c84a5], al
mov byte [esp + 0x13], 1
mov eax, dword [esi]
test eax, eax
je 0x4052b2
cmp dword [eax], 7
mov byte [esp + 0x1a], 1
je 0x4052b7
mov byte [esp + 0x1a], 0
mov al, byte [esi + 8]
test al, al
je 0x405467
cmp byte [esp + 0x130], 0
jne 0x405467
test edx, edx
je 0x4052e2
cmp byte [esi + 9], 0
je 0x4052e2
cmp esi, edx
jne 0x405467
cmp al, 1
jne 0x40530f
cmp byte [esp + 0x23], 0
mov eax, dword [esp + 0x2c]
jne 0x4052f9
movzx eax, byte [esp + 0x128]
mov ecx, dword [esp + 0x23]
push ecx
push eax
call fcn.0040a460
add esp, 8
test al, al
je 0x40530f
mov bl, 1
jmp 0x405322
xor bl, bl
cmp esi, dword [0x4c73b8]
je 0x405322
mov dword [0x4c73b8], esi
mov byte [esi + 0x11], bl
cmp byte [esi + 9], 0
je 0x4053de
cmp byte [esp + 0x13], 0
jne 0x405342
push 1
mov byte [esp + 0x17], 1
call fcn.004118d0
add esp, 4
mov al, byte [esi + 4]
mov cl, byte [0x4c84a6]
test al, al
je 0x405353
not al
and cl, al
test cl, cl
jne 0x405361
test bl, bl
jne 0x405361
test byte [esi + 0xb], 1
je 0x4053de
mov edx, dword [0x4c85d8]
cmp dword [esp + 0x118], edx
jne 0x40538d
cmp byte [esp + 0x23], 0
je 0x40538d
movzx eax, cl
mov ecx, dword [0x4c8ed8]
shl eax, 9
add eax, dword [esp + 0x2c]
movzx ecx, word [ecx + eax*2]
jmp 0x4053a7
movzx eax, byte [esp + 0x128]
movzx edx, cl
mov ecx, dword [0x4c8ed4]
shl edx, 8
add edx, eax
movzx ecx, word [ecx + edx*2]
mov dword [esp + 0x14], ecx
test ecx, 0x4000
je 0x4053b9
mov word [esi + 6], cx
jmp 0x4053ec
mov edx, dword [0x4c5ac0]
mov eax, ecx
and eax, 0x3fff
cmp ax, word [edx]
jae 0x4053e2
mov edx, dword [0x4c8edc]
movzx eax, ax
mov ax, word [edx + eax*2]
mov word [esi + 6], ax
jmp 0x4053e2
mov ecx, dword [esp + 0x14]
mov edx, 0x3fff
cmp cx, dx
jne 0x405461
test bl, bl
je 0x4053fd
or byte [esi + 0xb], 8
mov eax, 0x23
mov word [ebp + 4], ax
cmp byte [esi + 4], 0
jne 0x405434
test byte [esi + 0xb], 1
jne 0x405434
cmp byte [esp + 0x1a], 0
jne 0x405434
test bl, bl
jne 0x405434
mov ecx, dword [esp + 0x128]
push 0
push SysReAllocString
push 0x3fff
push 0
push edi
mov byte [esi + 0x10], 1
push ecx
jmp 0x40672c
push 0x3fff
push ebp
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 0x4050a5
mov edx, dword [0x4c73b8]
cmp byte [esi + 9], 0
mov ebx, dword [esp + 0x130]
mov byte [esp + 0x1b], 0
je 0x4054c8
test bl, bl
je 0x4054c8
cmp edx, esi
jne 0x405490
cmp byte [esp + 0x12], 0
je 0x4054c8
xor edx, edx
mov dword [0x4c73b8], edx
cmp byte [esi + 0xa], 0
jne 0x4054c3
mov al, byte [esi + 0xb]
test al, 8
je 0x4054a6
xor cl, cl
and al, 0xf7
mov byte [esi + 0xb], al
jmp 0x4054a8
mov cl, 1
cmp byte [esp + 0x12], 0
je 0x4054b7
test cl, cl
jne 0x4055f5
push 0x3fff
push ebp
push ebx
jmp 0x40543c
mov byte [esp + 0x1b], 1
cmp byte [esi + 8], 0
je 0x405694
test bl, bl
je 0x405694
cmp edx, esi
jne 0x4054e8
mov dword [0x4c73b8], 0
cmp byte [esi + 0xd], 0
je 0x405509
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 1
mov byte [esi + 0xd], 0
call fcn.0040f350
add esp, 0x18
cmp byte [esi + 0xe], 0
je 0x40552a
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
mov byte [esi + 0xe], 0
call fcn.0040f350
add esp, 0x18
mov ecx, dword [esp + 0x14]
mov eax, 0x3fff
cmp cx, ax
jne 0x405550
mov al, byte [esi + 0xb]
test al, 8
je 0x405550
and al, 0xf7
mov byte [esi + 0xb], al
push 0x3fff
push ebp
push ebx
jmp 0x405013
mov dl, byte [esp + 0x1a]
test dl, dl
je 0x4055d5
mov al, byte [esi + 0x11]
cmp al, 2
jne 0x4055a5
mov esi, dword [esp + 0x128]
push 0xffc3d44e
push 0
push 0
push edi
push esi
push 1
call fcn.0040f350
push 0xffc3d44d
push 0
push 0
push edi
push esi
push 2
call fcn.0040f350
mov edx, dword [esp + 0x160]
push 0
push SysReAllocString
push 0x3fff
push edx
push edi
push esi
jmp 0x404f5b
cmp al, 1
jne 0x405617
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x11c]
push 0x3fff
push ebp
push ebx
push eax
mov eax, dword [esp + 0x128]
push ecx
push edx
push eax
jmp 0x405033
cmp byte [esi + 0x11], 0
je 0x405617
mov eax, 0x3fff
cmp cx, ax
jne 0x405617
cmp byte [esi + 4], 0
jne 0x405544
test byte [esi + 0xb], 1
jne 0x405668
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x128]
push 0
push SysReAllocString
push 0x3fff
push eax
push edi
push ecx
jmp 0x40672c
cmp byte [esi + 9], 0
jne 0x40565b
cmp byte [esi + 4], 0
jne 0x405544
test byte [esi + 0xb], 1
jne 0x405544
test dl, dl
jne 0x405544
mov edx, dword [esp + 0x130]
mov eax, dword [esp + 0x128]
push 0
push SysReAllocString
push 0x3fff
push edx
push edi
push eax
jmp 0x40672c
cmp byte [esp + 0x22], 0
jne 0x405698
cmp byte [esi + 0xa], 0
jne 0x405698
mov edx, dword [esp + 0x128]
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x11c]
push 0x3fff
push ebp
push ebx
push edx
mov edx, dword [esp + 0x128]
push eax
push ecx
push edx
jmp 0x405033
mov ecx, dword [esp + 0x14]
cmp byte [esp + 0x13], 0
jne 0x4056b3
mov eax, 0x3fff
cmp cx, ax
jne 0x4056b3
push 1
call fcn.004118d0
add esp, 4
cmp dword [0x4c73b8], 0
mov byte [esp + 0x12], 0
je 0x405da9
test bl, bl
je 0x4056d7
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + 0xa], 0
je 0x405da9
mov edx, 0x3fff
cmp word [esp + 0x14], dx
jne 0x406039
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
xor edi, edi
cmp byte [ebp + 0x13], 0
jbe 0x4057ae
mov ebx, dword [0x4c8ee0]
lea esi, [ebp + 0x16]
mov cl, byte [esi]
movzx eax, cl
lea eax, [eax + eax*8]
shl eax, 5
cmp byte [eax + ebx + 0xc], 0
je 0x405784
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x40576e
cmp byte [esp + 0x130], 0
jne 0x405796
mov ecx, 0x3fff
mov word [ebp + 6], ax
cmp dx, cx
je 0x405784
mov dword [esp + 0x14], edx
movzx ecx, byte [esp + 0x13]
mov eax, ecx
sub eax, 0x10
je 0x405882
dec eax
je 0x405869
dec eax
je 0x405850
lea ecx, [ecx + ecx*8]
shl ecx, 5
add ecx, ebx
mov dword [0x4c73b8], ecx
jmp 0x405825
cmp byte [esp + 0x130], 0
mov ebx, dword [0x4c8ee0]
jne 0x405784
mov edx, eax
mov byte [esp + 0x13], cl
movzx eax, byte [ebp + 0x13]
inc edi
add esi, 4
cmp edi, eax
jl 0x405704
jmp 0x4057a0
mov cl, byte [esi]
movzx edx, word [esi + 2]
mov byte [esp + 0x13], cl
mov eax, 0x3fff
mov dword [esp + 0x14], edx
cmp dx, ax
jne 0x40573d
xor edi, edi
cmp byte [ebp + 0x14], 0
jbe 0x405833
lea esi, [ebp + 0xde]
lea esp, [esp]
movzx ecx, word [esi]
mov ebx, dword [0x4c8ee4]
mov eax, ecx
lea eax, [eax + eax*8]
shl eax, 5
cmp byte [eax + ebx + 0xc], 0
je 0x4058ad
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x40589b
cmp byte [esp + 0x130], 0
jne 0x4058bf
mov ecx, 0x3fff
mov word [ebp + 6], ax
cmp dx, cx
je 0x4058ad
mov dword [esp + 0x14], edx
movzx eax, word [esp + 0x38]
lea eax, [eax + eax*8]
shl eax, 5
add eax, dword [0x4c8ee4]
mov dword [0x4c73b8], eax
mov eax, 0x3fff
cmp dx, ax
jne case.default.0x405849
movzx eax, byte [esp + 0x128]
add eax, 0xffffff60
cmp eax, 5
ja case.default.0x405849
jmp dword [eax*4 + 0x4067e4]
xor eax, eax
cmp byte [ebx + 0xb9ac], al
setne al
lea eax, [eax + eax*8 + 0x5c4]
shl eax, 5
add eax, ebx
jmp 0x405820
xor eax, eax
cmp byte [ebx + 0xb76c], al
setne al
lea eax, [eax + eax*8 + 0x5b2]
shl eax, 5
add eax, ebx
jmp 0x405820
xor eax, eax
cmp byte [ebx + 0xb52c], al
setne al
lea eax, [eax + eax*8 + 0x5a0]
shl eax, 5
add eax, ebx
jmp 0x405820
cmp byte [esp + 0x130], 0
jne 0x4058ad
mov edx, eax
mov eax, ecx
mov dword [esp + 0x38], eax
movzx ecx, byte [ebp + 0x14]
inc edi
add esi, 4
cmp edi, ecx
jl 0x4057c0
jmp 0x4058ca
movzx eax, word [esi]
movzx edx, word [esi + 2]
mov dword [esp + 0x38], eax
mov ecx, 0x3fff
mov dword [esp + 0x14], edx
cmp dx, cx
je 0x405833
jmp 0x40580f
mov al, 0x11
jmp 0x4058eb
mov al, 0x12
jmp 0x4058eb
mov al, 0x10
mov ebx, dword [0x4c8ee0]
mov edx, dword [esp + 0x14]
movzx eax, al
lea ecx, [eax + eax*8]
shl ecx, 5
movzx ebp, byte [ecx + ebx + 0x13]
lea esi, [ecx + ebx]
xor edi, edi
mov dword [esp + 0x34], esi
test ebp, ebp
jle 0x4059bb
add esi, 0x16
mov cl, byte [esi]
movzx eax, cl
lea eax, [eax + eax*8]
shl eax, 5
cmp byte [eax + ebx + 0xc], 0
je 0x40599b
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x405985
cmp byte [esp + 0x130], 0
jne 0x4059a9
mov ecx, dword [esp + 0x1c]
mov word [ecx + 6], ax
mov eax, 0x3fff
cmp dx, ax
je 0x40599b
mov dword [esp + 0x14], edx
movzx ecx, byte [esp + 0x13]
mov eax, ecx
sub eax, 0x10
je 0x405b16
dec eax
je 0x405afa
dec eax
je 0x405ade
lea ecx, [ecx + ecx*8]
shl ecx, 5
add ecx, ebx
mov dword [0x4c73b8], ecx
jmp case.default.0x405849
cmp byte [esp + 0x130], 0
mov ebx, dword [0x4c8ee0]
jne 0x40599b
mov edx, eax
mov byte [esp + 0x13], cl
inc edi
add esi, 4
cmp edi, ebp
jl 0x405917
jmp 0x4059b3
mov cl, byte [esi]
movzx edx, word [esi + 2]
mov byte [esp + 0x13], cl
mov esi, dword [esp + 0x34]
mov dword [esp + 0x14], edx
mov eax, 0x3fff
cmp dx, ax
jne 0x405954
movzx edx, byte [esi + 0x14]
xor edi, edi
test edx, edx
jle case.default.0x405849
mov ebp, dword [esp + 0x14]
add esi, 0xde
lea esp, [esp]
movzx ecx, word [esi]
mov ebx, dword [0x4c8ee4]
mov eax, ecx
lea eax, [eax + eax*8]
shl eax, 5
cmp byte [eax + ebx + 0xc], 0
je 0x405b42
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x405b32
cmp byte [esp + 0x130], 0
jne 0x405b50
mov ecx, dword [esp + 0x1c]
mov word [ecx + 6], ax
mov eax, 0x3fff
cmp bp, ax
je 0x405b42
mov dword [esp + 0x14], ebp
movzx eax, word [esp + 0x38]
lea eax, [eax + eax*8]
shl eax, 5
add eax, dword [0x4c8ee4]
mov dword [0x4c73b8], eax
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x3c]
mov esi, eax
mov edx, 0x3fff
and esi, 0x3fff
cmp ax, dx
je 0x405b86
mov eax, dword [0x4c5ac0]
cmp si, word [eax]
jae 0x405b7c
mov ebx, dword [esp + 0x130]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x134]
lea edx, [esp + 0x14]
push ebx
add ecx, 0xb
push edx
lea esi, [ebp + 4]
lea eax, [esp + 0x1a]
call fcn.0040a680
add esp, 8
mov dword [esp + 0x30], eax
test eax, eax
jne 0x405b72
push 0x3fff
push ebp
push ebx
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x128]
push eax
mov eax, dword [esp + 0x128]
push ecx
push edx
push eax
mov eax, dword [esp + 0x148]
jmp 0x405035
xor eax, eax
cmp byte [ebx + 0xb9ac], al
setne al
lea eax, [eax + eax*8 + 0x5c4]
shl eax, 5
add eax, ebx
jmp 0x405a44
xor eax, eax
cmp byte [ebx + 0xb76c], al
setne al
lea eax, [eax + eax*8 + 0x5b2]
shl eax, 5
add eax, ebx
jmp 0x405a44
xor eax, eax
cmp byte [ebx + 0xb52c], al
setne al
lea eax, [eax + eax*8 + 0x5a0]
shl eax, 5
add eax, ebx
jmp 0x405a44
cmp byte [esp + 0x130], 0
jne 0x405b42
mov ebp, eax
mov dword [esp + 0x38], ecx
inc edi
add esi, 4
cmp edi, edx
jl 0x4059e0
jmp 0x405b5b
movzx edx, word [esi]
movzx ebp, word [esi + 2]
mov dword [esp + 0x38], edx
mov eax, 0x3fff
mov dword [esp + 0x14], ebp
cmp bp, ax
je case.default.0x405849
jmp 0x405a33
mov esi, dword [esp + 0x14]
and esi, 0x3fff
mov ecx, dword [0x4c73b8]
mov byte [ecx + 0x11], 2
mov edx, 0x3ffe
cmp si, dx
je 0x405b9e
mov eax, 0x3ffd
cmp si, ax
jne 0x405da9
cmp byte [esp + 0x130], 0
jne 0x405bb0
mov ecx, dword [esp + 0x1c]
mov byte [ecx + 0xf], 1
test byte [0x4c84a5], 0xc
jne 0x405bd0
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0040f350
add esp, 0x18
mov ebx, dword [esp + 0x128]
cmp bl, 0xa2
je 0x405be1
cmp bl, 0xa3
jne 0x405c09
cmp byte [esp + 0x130], 0
jne 0x405c09
mov edi, dword [esp + 0x12c]
push 0xffc3d44d
push 0
push 0
push edi
push ebx
push 1
call fcn.0040f350
add esp, 0x18
jmp 0x405c10
mov edi, dword [esp + 0x12c]
mov edx, dword [0x4c73b8]
mov eax, 0x3ffd
mov byte [edx + 0xd], 1
cmp si, ax
jne 0x405c50
test byte [0x4c84a5], 0x30
jne 0x405c44
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 0
call fcn.0040f350
add esp, 0x18
mov ecx, dword [0x4c73b8]
mov byte [ecx + 0xe], 1
jmp 0x405cc9
mov edx, 0x3ffe
cmp si, dx
jne 0x405cc9
cmp bl, 0xa0
je 0x405c64
cmp bl, 0xa1
jne 0x405c83
cmp byte [esp + 0x130], 0
jne 0x405c83
push 0xffc3d44d
push 0
push 0
push edi
push ebx
push 1
call fcn.0040f350
add esp, 0x18
test byte [0x4c84a5], 0x10
je 0x405ca6
push 0xffc3d44d
push 0
push 0
push 0
push 0xa0
push 1
call fcn.0040f350
add esp, 0x18
test byte [0x4c84a5], 0x20
je 0x405cc9
push 0xffc3d44d
push 0
push 0
push 0
push 0xa1
push 1
call fcn.0040f350
add esp, 0x18
test byte [0x4c84a5], 1
je 0x405cec
push 0xffc3d44d
push 0
push 0
push 0
push 0xa2
push 1
call fcn.0040f350
add esp, 0x18
test byte [0x4c84a5], 2
je 0x405d0f
push 0xffc3d44d
push 0
push 0
push 0
push 0xa3
push 1
call fcn.0040f350
add esp, 0x18
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0040f350
mov eax, 0x3ffd
add esp, 0x18
cmp si, ax
jne 0x405d6c
mov ecx, dword [0x4c73b8]
cmp byte [ecx + 0xe], 0
je 0x405d6c
cmp bl, 0x60
jb 0x405d46
cmp bl, 0x69
jbe 0x405d4b
cmp bl, 0x6e
jne 0x405d6c
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
call fcn.0040f350
mov edx, dword [0x4c73b8]
add esp, 0x18
mov byte [edx + 0xe], 0
cmp byte [esp + 0x130], 0
mov eax, 0x68
mov word [ebp + 4], ax
jne 0x405d87
mov ecx, dword [esp + 0x1c]
mov byte [ecx + 0x10], 1
mov edx, dword [esp + 0x130]
mov eax, dword [esp + 0x128]
push 0
push SysReAllocString
push 0x3fff
push edx
push edi
push eax
jmp 0x40672c
mov ecx, 0x3fff
cmp word [esp + 0x14], cx
jne 0x406039
mov edx, dword [esp + 0x1c]
mov cl, byte [edx + 4]
mov al, byte [0x4c84a6]
test cl, cl
je 0x405dcd
not cl
and al, cl
mov edi, dword [esp + 0x118]
mov esi, dword [0x4c85d8]
cmp edi, esi
jne 0x405e02
cmp byte [esp + 0x23], 0
je 0x405e02
mov edx, dword [0x4c8ed8]
movzx ecx, al
shl ecx, 9
add ecx, dword [esp + 0x2c]
movzx edx, word [edx + ecx*2]
mov cl, byte [esp + 0x128]
jmp 0x405e1e
mov cl, byte [esp + 0x128]
movzx edx, al
movzx ebx, cl
shl edx, 8
add edx, ebx
mov ebx, dword [0x4c8ed4]
movzx edx, word [ebx + edx*2]
mov ebx, 0x3fff
mov dword [esp + 0x14], edx
cmp dx, bx
jne 0x405e94
cmp byte [0x4c73b6], 0
je 0x405e94
cmp cl, 9
je 0x405e94
and al, 0xf3
cmp edi, esi
jne 0x405e5d
cmp byte [esp + 0x23], 0
je 0x405e5d
mov ecx, dword [0x4c8ed8]
movzx eax, al
shl eax, 9
add eax, dword [esp + 0x2c]
movzx edx, word [ecx + eax*2]
jmp 0x405e72
movzx edx, al
movzx eax, cl
mov ecx, dword [0x4c8ed4]
shl edx, 8
add edx, eax
movzx edx, word [ecx + edx*2]
mov eax, edx
and eax, 0x3fff
mov ecx, 0x3ff9
mov dword [esp + 0x14], edx
cmp ax, cx
jbe 0x405e8e
mov ecx, ebx
cmp ax, cx
jb 0x405e94
mov edx, ebx
mov dword [esp + 0x14], edx
test edx, 0x4000
je 0x405ed5
cmp byte [esp + 0x130], 0
jne 0x405f79
mov ecx, dword [esp + 0x1c]
mov dx, word [esp + 0x14]
mov word [ecx + 6], dx
lea eax, [ecx + 6]
mov edx, 0x3fff
cmp word [eax], dx
jne 0x40600c
push 0x3fff
push ebp
push 0
jmp 0x405ab2
mov eax, ebx
cmp dx, ax
je 0x405f89
mov ecx, dword [0x4c5ac0]
and edx, eax
cmp byte [esp + 0x130], 0
mov eax, edx
je 0x405f60
cmp ax, word [ecx]
jae 0x405f57
movzx ebx, ax
mov eax, dword [0x4c8edc]
add ebx, ebx
mov edx, 0x3fff
cmp word [ebx + eax], dx
je 0x405f57
cmp byte [esp + 0x1b], 0
jne 0x405f47
mov edx, dword [esp + 0x130]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x134]
push edx
lea eax, [esp + 0x18]
push eax
add ecx, 0xb
lea esi, [ebp + 4]
lea eax, [esp + 0x1a]
call fcn.0040a680
add esp, 8
mov dword [esp + 0x30], eax
test eax, eax
jne 0x405f79
mov ecx, dword [0x4c8edc]
movzx edx, word [ebx + ecx]
mov dword [esp + 0x14], edx
jmp 0x405f79
cmp byte [esp + 0x1b], 0
jne 0x405f89
jmp 0x405f79
cmp ax, word [ecx]
jae 0x405f79
movzx edx, ax
mov eax, dword [0x4c8edc]
mov cx, word [eax + edx*2]
mov edx, dword [esp + 0x1c]
mov word [edx + 6], cx
mov eax, 0x3fff
cmp word [esp + 0x14], ax
jne 0x406039
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x1c]
test al, al
je 0x405eb7
cmp byte [ecx + 4], 0
jne 0x405fd9
test byte [ecx + 0xb], 1
jne 0x405fd9
cmp byte [ecx + 8], 0
je 0x405fd9
cmp byte [esp + 0x1a], 0
jne 0x405fd9
mov edx, dword [esp + 0x12c]
push 0
push SysReAllocString
push 0x3fff
mov ecx, eax
mov eax, dword [esp + 0x134]
push ecx
push edx
push eax
jmp 0x40672c
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x120]
push 0x3fff
push ebp
push eax
mov eax, dword [esp + 0x128]
push ecx
mov ecx, dword [esp + 0x128]
push edx
push eax
mov eax, dword [esp + 0x144]
push ecx
jmp 0x405035
push 1
push eax
add ecx, 0xb
xor esi, esi
lea eax, [esp + 0x1a]
xor edi, edi
call fcn.0040a680
add esp, 8
cmp byte [esp + 0x12], 0
je 0x40615a
push 0x3fff
push ebp
push edi
jmp 0x406281
mov ebx, dword [esp + 0x1c]
mov al, byte [ebx + 0xb]
add ebx, 0xb
mov dword [esp + 0x34], ebx
test al, 8
je 0x40605e
cmp byte [esp + 0x130], 0
je 0x40605e
and al, 0xf7
mov byte [esp + 0x12], 1
mov byte [ebx], al
mov ecx, dword [esp + 0x14]
mov edx, dword [0x4c5ac0]
and ecx, 0x3fff
cmp cx, word [edx]
jae 0x40617d
cmp dword [esp + 0x30], 0
jne 0x40617d
mov eax, dword [esp + 0x130]
mov edi, dword [esp + 0x134]
push eax
lea ecx, [esp + 0x18]
push ecx
lea esi, [ebp + 4]
lea eax, [esp + 0x1a]
mov ecx, ebx
call fcn.0040a680
add esp, 8
mov dword [esp + 0x30], eax
test eax, eax
jne 0x40617d
mov eax, dword [esp + 0x130]
test al, al
je 0x4060e5
mov edx, dword [esp + 0x1c]
cmp byte [edx + 0x10], 0
je 0x4060d9
push 0
push SysReAllocString
push 0x3fff
jmp 0x406714
push 0x3fff
push ebp
push eax
jmp 0x405ab2
mov eax, dword [esp + 0x1c]
add eax, 6
mov ecx, 0x3fff
cmp word [eax], cx
jne 0x406126
mov edx, dword [esp + 0x128]
mov eax, dword [esp + 0x120]
push ecx
mov ecx, dword [esp + 0x120]
push ebp
push 0
push edx
mov edx, dword [esp + 0x128]
push eax
mov eax, dword [esp + 0x140]
push ecx
push edx
jmp 0x405035
push 1
push eax
xor esi, esi
lea eax, [esp + 0x1a]
mov ecx, ebx
xor edi, edi
mov byte [esp + 0x1a], 0
call fcn.0040a680
add esp, 8
cmp byte [esp + 0x12], 0
jne 0x405ec8
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
and byte [eax], 0xf7
mov byte [ecx + 0x10], 1
mov edx, dword [esp + 0x12c]
mov eax, dword [esp + 0x128]
push 0
push SysReAllocString
push 0x3fff
push 0
push edx
push eax
jmp 0x40672c
mov esi, dword [esp + 0x14]
mov dl, byte [0x4c84a5]
and esi, 0x3fff
test dl, 0xcc
je 0x406252
cmp byte [esp + 0x12], 0
jne 0x406252
cmp byte [0x4c73b7], 0
jne 0x4061bd
mov ecx, dword [esp + 0x118]
cmp ecx, dword [0x4c85dc]
jne 0x406252
mov bl, byte [0x4c84a7]
test dl, 0xc0
je 0x4061ef
test bl, 0xc0
jne 0x4061e6
push 0xc0
mov eax, esi
call fcn.0040a8d0
mov dl, byte [0x4c84a5]
add esp, 4
test al, al
je 0x4061ef
mov byte [0x4c73bc], 1
jmp 0x406252
cmp byte [0x4c73bc], 0
jne 0x406252
test dl, 0xc
je 0x406252
test dl, 3
jne 0x406252
test bl, 0xc
jne 0x40621d
push 0xc
mov eax, esi
call fcn.0040a8d0
mov dl, byte [0x4c84a5]
add esp, 4
test al, al
je 0x406252
cmp dword [0x4c85d8], 0
je 0x40622f
mov byte [0x4c73bc], 1
jmp 0x406252
movzx edx, byte [0x4c4385]
push 0xffc3d44d
push 0
push 0
push 0
push edx
push 2
call fcn.0040f350
mov dl, byte [0x4c84a5]
add esp, 0x18
mov eax, esi
lea ecx, [eax - 0x3ffa]
cmp ecx, 4
ja case.default.0x406263
jmp dword [ecx*4 + 0x4067fc]
cmp byte [0x4c73b6], 0
jne case.0x406263.16379
mov eax, dword [esp + 0x130]
push 0x3fff
push ebp
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
mov eax, dword [esp + 0x144]
push ecx
jmp 0x405035
xor al, al
mov byte [esp + 0x1b], al
test dl, 4
je 0x4062bc
mov al, 0xa4
jmp 0x4062c3
test dl, 8
je 0x4062c7
mov al, 0xa5
mov byte [esp + 0x1b], al
cmp byte [0x4c73b6], 0
je 0x406345
mov edx, 0x3ffb
cmp si, dx
je case.0x406263.16381
test al, al
movzx eax, al
jne 0x4062ea
mov eax, 0x12
push 0xffc3d44d
push 0
push 0
push 0
push eax
push 1
call fcn.0040f350
mov eax, dword [esp + 0x34]
add esp, 0x18
cmp byte [eax + 4], 0
je 0x406339
mov eax, dword [esp + 0x128]
cmp al, 0x5b
je 0x406339
cmp al, 0x5c
je 0x406339
cmp byte [esp + 0x130], 0
jne 0x406339
push 0xffc3d44d
push 0
push 0
push 0
push eax
push 1
call fcn.0040f350
add esp, 0x18
mov byte [0x4c73b6], 0
jmp 0x4065bc
mov al, byte [esp + 0x128]
cmp al, 0xa4
je 0x406359
mov byte [esp + 0x27], 0
cmp al, 0xa5
jne 0x40635e
mov byte [esp + 0x27], 1
cmp al, 0xa0
je 0x40636a
cmp al, 0xa1
je 0x40636a
xor bl, bl
jmp 0x40636c
mov bl, 1
mov byte [esp + 0x22], bl
cmp al, 0xa2
je 0x40637d
mov byte [esp + 0x13], 0
cmp al, 0xa3
jne 0x406382
mov byte [esp + 0x13], 1
xor cl, cl
mov byte [esp + 0x2c], cl
test dl, 0x10
je 0x406395
mov cl, 0xa0
mov byte [esp + 0x2c], cl
jmp 0x4063bc
test dl, 0x20
je 0x4063a2
mov cl, 0xa1
mov byte [esp + 0x2c], cl
jmp 0x4063bc
cmp byte [esp + 0x130], 0
jne 0x4063b6
test bl, bl
je 0x4063b6
mov cl, al
mov byte [esp + 0x2c], cl
mov dl, byte [0x4c84a5]
mov byte [esp + 0x23], 0
test dl, 1
je 0x4063cd
mov byte [esp + 0x23], 0xa2
jmp 0x4063ee
test dl, 2
je 0x4063d9
mov byte [esp + 0x23], 0xa3
jmp 0x4063ee
cmp byte [esp + 0x130], 0
jne 0x4063ee
cmp byte [esp + 0x13], 0
je 0x4063ee
mov byte [esp + 0x23], al
mov esi, dword [esp + 0x2c]
xor bl, bl
test cl, cl
je 0x406410
push 0xffc3d44d
push 0
push 0
push 0
push esi
push 1
call fcn.0040f350
add esp, 0x18
mov bl, 1
cmp byte [esp + 0x23], 0
je 0x406431
mov ecx, dword [esp + 0x23]
push 0xffc3d44d
push 0
push 0
push 0
push ecx
push 1
call fcn.0040f350
add esp, 0x18
cmp byte [esp + 0x27], 0
je 0x40644b
cmp byte [esp + 0x130], 0
jne 0x406453
mov al, byte [esp + 0x128]
jmp 0x40644f
mov al, byte [esp + 0x1b]
test al, al
jne 0x40646a
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0040f350
add esp, 0x18
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0040f350
add esp, 0x18
test bl, bl
je 0x4064a2
cmp byte [esp + 0x22], 0
jne 0x4064a2
push 0xffc3d44d
push 0
push 0
push 0
push esi
push 0
call fcn.0040f350
add esp, 0x18
mov byte [0x4c73b6], 1
jmp 0x4065bc
cmp byte [0x4c73b6], 0
jne 0x4064ca
mov edx, dword [esp + 0x130]
push 0x3fff
push ebp
push edx
jmp 0x405ab2
cmp byte [esp + 0x130], 0
mov ebx, dword [esp + 0x128]
jne 0x406505
cmp bl, 0xa2
je 0x4064ef
cmp bl, 0xa3
je 0x4064ef
cmp bl, 0xa0
je 0x4064ef
cmp bl, 0xa1
jne 0x406505
push 0xffc3d44d
push 0
push 0
push 0
push ebx
push 1
call fcn.0040f350
add esp, 0x18
test byte [0x4c84a5], 0xc
je 0x406522
cmp byte [esp + 0x130], 0
je 0x406539
cmp bl, 0xa4
je 0x406522
cmp bl, 0xa5
jne 0x406539
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0040f350
add esp, 0x18
mov ecx, 0x3ffd
xor bl, bl
cmp si, cx
jne 0x406567
test byte [0x4c84a5], 0x30
jne 0x406567
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 0
call fcn.0040f350
add esp, 0x18
mov bl, 1
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0040f350
add esp, 0x18
test bl, bl
je 0x4065bc
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
call fcn.0040f350
add esp, 0x18
jmp 0x4065bc
mov edx, dword [esp + 0x30]
mov dword [esp + 0x28], eax
mov eax, dword [edx + 4]
test eax, eax
je 0x4065bc
cmp byte [eax], 5
jb 0x4065bc
mov eax, edx
movzx ecx, word [eax + 0x14]
shl ecx, 0x10
or dword [esp + 0x28], ecx
cmp byte [esp + 0x1a], 0
mov ebx, dword [esp + 0x130]
mov esi, dword [esp + 0x1c]
mov edx, 0x68
mov word [ebp + 4], dx
je 0x40662d
test bl, bl
je 0x4066a6
cmp byte [esi + 8], 0
je 0x40662d
mov edi, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
push 0xffc3d44e
push 0
push 0
push edi
push esi
push 1
call fcn.0040f350
push 0xffc3d44d
push 0
push 0
push edi
push esi
push 2
call fcn.0040f350
mov eax, dword [esp + 0x58]
push 0
push SysReAllocString
push eax
mov ecx, ebx
push ecx
push edi
push esi
jmp 0x404f5b
test bl, bl
je 0x4066a6
cmp byte [esi + 4], 0
je 0x40664d
cmp byte [esi + 0x10], 0
jne 0x406708
mov eax, dword [esp + 0x28]
push eax
push ebp
push ebx
jmp 0x406281
cmp byte [esp + 0x12], 0
je 0x406700
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x128]
mov eax, dword [esp + 0x118]
cmp eax, dword [0x4c85dc]
push edx
mov edx, dword [esp + 0x124]
push ebp
push ebx
push ecx
mov ecx, dword [esp + 0x12c]
push edx
push ecx
mov ecx, dword [esp + 0x13c]
push eax
mov eax, dword [esp + 0x148]
call fcn.00406940
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret
mov eax, dword [0x4c73b8]
mov byte [esi + 0xf], 1
test eax, eax
je 0x4066bd
cmp byte [eax + 4], 0
je 0x4066bd
mov byte [eax + 0x11], 2
cmp byte [esp + 0x12], 0
je 0x4066d5
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x28]
or byte [eax], 8
push edx
jmp 0x405ab0
mov eax, dword [esp + 0x128]
cmp al, 0xa4
je 0x4066e4
cmp al, 0xa5
jne 0x406700
mov ecx, dword [esp + 0x12c]
push 0xffc3d450
push 0
push 0
push ecx
push eax
push 1
call fcn.0040f350
add esp, 0x18
test bl, bl
jne 0x406708
mov byte [esi + 0x10], 1
mov edx, dword [esp + 0x28]
push 0
push SysReAllocString
push edx
mov eax, dword [esp + 0x13c]
mov ecx, dword [esp + 0x138]
push eax
push ecx
mov edx, dword [esp + 0x13c]
push edx
mov eax, dword [esp + 0x13c]
mov ecx, dword [esp + 0x130]
mov ebx, ebp
call fcn.00406810
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret