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 [0x4be870]
fdiv qword [0x4be868]
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, 0x4a38c0
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 0x404ca0
mov edx, dword [esp + 0x124]
movzx eax, word [edx + 4]
push 0x3fff
push ebp
mov ecx, 0x55
mov word [ebp + 4], cx
mov ecx, dword [esp + 0x128]
push ebx
push ecx
mov ecx, dword [esp + 0x12c]
push ecx
mov ecx, dword [esp + 0x12c]
push ecx
mov cl, 0xe7
mov word [ebp + 2], ax
call fcn.00406990
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret
add al, 0x64
mov word [ebp + 2], di
cmp al, 3
ja 0x404cb3
xor edi, edi
mov dword [esp + 0x12c], edi
mov edx, dword [esp + 0x118]
cmp edx, dword [0x4c85dc]
jne 0x404cf3
mov bl, byte [esp + 0x138]
and bl, 1
jne 0x404e6d
cmp byte [esp + 0x130], bl
movzx ecx, byte [esp + 0x128]
setne al
dec al
and al, 0x80
mov byte [ecx + 0x4c84c8], al
jmp 0x404e6d
mov ebx, dword [esp + 0x138]
shr ebx, 4
and bl, 1
test edi, 0x100
jne case.0x404d3a.13
push 0x90
call dword [sym.imp.USER32.dll_GetKeyState]
test al, 1
je case.0x404d3a.13
movzx eax, byte [esp + 0x128]
add eax, 0xfffffff4
cmp eax, 0x62
ja case.0x404d3a.13
movzx edx, byte [eax + 0x4067c8]
jmp dword [edx*4 + 0x406798]
cmp byte [esp + 0x130], 0
sete al
mov byte [0x4c7394], al
jmp case.0x404d3a.13
cmp byte [esp + 0x130], 0
sete cl
mov byte [0x4c7395], cl
jmp case.0x404d3a.13
cmp byte [esp + 0x130], 0
sete dl
mov byte [0x4c7396], dl
jmp case.0x404d3a.13
cmp byte [esp + 0x130], 0
sete al
mov byte [0x4c7397], al
jmp case.0x404d3a.13
cmp byte [esp + 0x130], 0
sete cl
mov byte [0x4c7398], cl
jmp case.0x404d3a.13
cmp byte [esp + 0x130], 0
sete dl
mov byte [0x4c7399], dl
jmp case.0x404d3a.13
cmp byte [esp + 0x130], 0
sete al
mov byte [0x4c739a], al
jmp case.0x404d3a.13
cmp byte [esp + 0x130], 0
sete cl
mov byte [0x4c739b], cl
jmp case.0x404d3a.13
cmp byte [esp + 0x130], 0
sete dl
mov byte [0x4c739c], dl
jmp case.0x404d3a.13
cmp byte [esp + 0x130], 0
sete al
mov byte [0x4c739d], al
jmp case.0x404d3a.13
cmp byte [esp + 0x130], 0
sete cl
mov byte [0x4c739e], cl
movzx esi, byte [esp + 0x128]
mov eax, dword [0x4c8ee0]
lea edx, [esi + esi*8]
shl edx, 5
cmp byte [edx + eax + 4], 0
jne 0x404e6d
test byte [esp + 0x138], 0x10
jne 0x404e6d
mov ecx, dword [esp + 0x130]
mov al, byte [esp + 0x128]
push ecx
call fcn.00407cf0
add esp, 4
test al, al
je 0x404e6d
cmp byte [esp + 0x130], 0
setne dl
dec dl
and dl, 0x80
mov byte [esi + 0x4c84c8], dl
cmp byte [esp + 0x1a], 0
je 0x404e78
mov al, 0x69
jmp 0x404e82
neg bl
sbb bl, bl
and bl, 0x41
lea eax, [ebx + 0x20]
cmp byte [0x4c85c8], 0
cbw
mov word [ebp + 4], ax
je 0x404eae
mov al, byte [esp + 0x128]
cmp al, 0x5b
je 0x404ea0
cmp al, 0x5c
jne 0x404eae
cmp byte [esp + 0x130], 0
je 0x4053ff
cmp byte [0x4c73b6], 0
je 0x404f6e
cmp byte [esp + 0x128], 0x1b
jne 0x404f6e
cmp byte [esp + 0x130], 0
jne 0x404f6e
push 0
push str.32771
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x404f6e
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 0x404f6e
push 0xffc3d44d
push 0
push 0
push 0
push 0x1b
push 0
call fcn.0040f360
mov dl, byte [0x4c84a5]
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.0040f360
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.00406860
add esp, 0x48
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret
mov edx, dword [0x4c8ee4]
movzx eax, di
lea ecx, [eax + eax*8]
shl ecx, 5
mov dword [esp + 0x2c], eax
lea eax, [ecx + edx]
mov edx, dword [0x4c85d8]
mov cl, byte [eax + 0x12]
mov byte [esp + 0x23], cl
cmp dword [esp + 0x118], edx
jne 0x404fa6
test cl, cl
je 0x404fa6
mov esi, eax
mov dword [esp + 0x1c], eax
jmp 0x404fbe
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 0x40503f
cmp dword [esp + 0x134], 0xffc3d44e
jne 0x404ff6
cmp byte [esp + 0x130], 0
je 0x404ff6
cmp dword [0x4c73b8], esi
jne 0x404ff6
mov byte [esi + 0xc], 0
mov byte [esi + 0xf], 0
mov dword [0x4c73b8], 0
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x11c]
push 0x3fff
push ebp
push eax
mov eax, dword [esp + 0x124]
push ecx
mov cl, byte [esp + 0x138]
push edx
mov edx, dword [esp + 0x138]
push eax
mov eax, edi
call fcn.00406990
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret
cmp byte [esp + 0x130], 0
jne 0x405056
mov ecx, 0x3fff
mov byte [esi + 0x10], 0
mov word [esi + 6], cx
mov ebx, dword [esp + 0x118]
cmp ebx, dword [0x4c85dc]
jne 0x405132
mov al, byte [esp + 0x128]
test al, al
jne 0x4050b1
mov edx, dword [esp + 0x130]
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x11c]
push 0x3fff
push ebp
push edx
mov edx, dword [esp + 0x130]
push eax
push ecx
push ebx
mov eax, edi
xor cl, cl
call fcn.00406990
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret
cmp al, 1
je 0x4050b9
cmp al, 2
jne 0x405132
cmp dword [0x4c8638], 0
jne 0x4050e4
push 0
push str.32768
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x405132
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x4ca5c0]
jne 0x405132
mov eax, dword [esp + 0x130]
push 0x3fff
test al, al
sete dl
push ebp
mov byte [esi + 0xf], 0
mov byte [esi + 0xc], dl
push eax
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x128]
push eax
push ecx
push ebx
mov eax, edi
mov cl, byte [esp + 0x140]
mov edx, dword [esp + 0x13c]
call fcn.00406990
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret
mov edx, dword [0x4c73b8]
mov ecx, dword [0x4c8ee0]
test edx, edx
je 0x40516e
cmp edx, esi
je 0x40516e
cmp byte [esp + 0x130], 0
jne 0x40516e
cmp ebx, dword [0x4c85d8]
jne 0x405162
xor eax, eax
cmp byte [esi + 4], al
sete al
jmp 0x405166
movzx eax, byte [edx + 4]
test eax, eax
je 0x40516e
mov byte [edx + 0x11], 1
cmp byte [esi + 8], 0
jne 0x40518d
cmp byte [esi + 9], 0
jne 0x40518d
mov edx, dword [esp + 0x130]
push 0x3fff
push ebp
push edx
jmp 0x4050fe
cmp byte [esp + 0x130], 0
mov dword [esp + 0x14], 0x3fff
mov dword [esp + 0x30], 0
je 0x4051dd
mov al, byte [esi + 0xf]
mov dl, byte [esi + 0xc]
mov byte [esp + 0x12], al
movzx eax, word [esi + 6]
mov byte [esp + 0x22], dl
mov edx, 0x3fff
mov byte [esi + 0xf], 0
cmp ax, dx
je 0x4051cf
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 0x405266
cmp byte [esi + 4], 0
je 0x405289
cmp byte [ecx + 0xb64c], 0
jne 0x405211
cmp byte [ecx + 0xb76c], 0
jne 0x405211
xor eax, eax
jmp 0x405216
mov eax, 1
cmp byte [ecx + 0xb88c], 0
mov byte [ecx + 0x132c], al
jne 0x405232
cmp byte [ecx + 0xb9ac], 0
jne 0x405232
xor eax, eax
jmp 0x405237
mov eax, 1
cmp byte [ecx + 0xb40c], 0
mov byte [ecx + 0x144c], al
jne 0x405259
cmp byte [ecx + 0xb52c], 0
jne 0x405259
xor eax, eax
mov byte [ecx + 0x120c], al
jmp 0x405289
mov eax, 1
mov byte [ecx + 0x120c], al
jmp 0x405289
test eax, eax
jne 0x405289
push 1
call fcn.004118e0
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 0x405299
cmp dword [eax], 7
mov byte [esp + 0x1a], 1
je 0x40529e
mov byte [esp + 0x1a], 0
mov al, byte [esi + 8]
test al, al
je 0x405446
cmp byte [esp + 0x130], 0
jne 0x405446
test edx, edx
je 0x4052c9
cmp byte [esi + 9], 0
je 0x4052c9
cmp esi, edx
jne 0x405446
cmp al, 1
jne 0x4052f6
cmp byte [esp + 0x23], 0
mov eax, dword [esp + 0x2c]
jne 0x4052e0
movzx eax, byte [esp + 0x128]
mov ecx, dword [esp + 0x23]
push ecx
push eax
call fcn.0040a3e0
add esp, 8
test al, al
je 0x4052f6
mov bl, 1
jmp 0x405309
xor bl, bl
cmp esi, dword [0x4c73b8]
je 0x405309
mov dword [0x4c73b8], esi
mov byte [esi + 0x11], bl
cmp byte [esi + 9], 0
je 0x4053c5
cmp byte [esp + 0x13], 0
jne 0x405329
push 1
mov byte [esp + 0x17], 1
call fcn.004118e0
add esp, 4
mov al, byte [esi + 4]
mov cl, byte [0x4c84a6]
test al, al
je 0x40533a
not al
and cl, al
test cl, cl
jne 0x405348
test bl, bl
jne 0x405348
test byte [esi + 0xb], 1
je 0x4053c5
mov edx, dword [0x4c85d8]
cmp dword [esp + 0x118], edx
jne 0x405374
cmp byte [esp + 0x23], 0
je 0x405374
movzx eax, cl
mov ecx, dword [0x4c8ed8]
shl eax, 9
add eax, dword [esp + 0x2c]
movzx ecx, word [ecx + eax*2]
jmp 0x40538e
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 0x4053a0
mov word [esi + 6], cx
jmp 0x4053d3
mov edx, dword [0x4c5ac0]
mov eax, ecx
and eax, 0x3fff
cmp ax, word [edx]
jae 0x4053c9
mov edx, dword [0x4c8edc]
movzx eax, ax
mov ax, word [edx + eax*2]
mov word [esi + 6], ax
jmp 0x4053c9
mov ecx, dword [esp + 0x14]
mov edx, 0x3fff
cmp cx, dx
jne 0x405440
test bl, bl
je 0x4053e4
or byte [esi + 0xb], 8
mov eax, 0x23
mov word [ebp + 4], ax
cmp byte [esi + 4], 0
jne 0x40541b
test byte [esi + 0xb], 1
jne 0x40541b
cmp byte [esp + 0x1a], 0
jne 0x40541b
test bl, bl
jne 0x40541b
mov byte [esi + 0x10], 1
mov ecx, dword [esp + 0x128]
push 0
push SysReAllocString
push 0x3fff
push 0
push edi
push ecx
jmp 0x406772
mov edx, dword [esp + 0x120]
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
push 0x3fff
push ebp
push 0
push edx
push eax
push ecx
jmp 0x40510f
mov edx, dword [0x4c73b8]
cmp byte [esi + 9], 0
mov ebx, dword [esp + 0x130]
mov byte [esp + 0x1b], 0
je 0x4054c1
test bl, bl
je 0x4054c1
cmp edx, esi
jne 0x40546f
cmp byte [esp + 0x12], 0
je 0x4054c1
xor edx, edx
mov dword [0x4c73b8], edx
cmp byte [esi + 0xa], 0
jne 0x4054bc
mov al, byte [esi + 0xb]
test al, 8
je 0x405485
xor cl, cl
and al, 0xf7
mov byte [esi + 0xb], al
jmp 0x405487
mov cl, 1
cmp byte [esp + 0x12], 0
je 0x4055b6
test cl, cl
je 0x4055b6
mov edx, dword [esp + 0x130]
mov eax, dword [esp + 0x128]
push 0
push SysReAllocString
push 0x3fff
push edx
push edi
push eax
jmp 0x406772
mov byte [esp + 0x1b], 1
cmp byte [esi + 8], 0
je 0x405665
test bl, bl
je 0x405665
cmp edx, esi
jne 0x4054e1
mov dword [0x4c73b8], 0
cmp byte [esi + 0xd], 0
je 0x405502
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 1
mov byte [esi + 0xd], 0
call fcn.0040f360
add esp, 0x18
cmp byte [esi + 0xe], 0
je 0x405523
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
mov byte [esi + 0xe], 0
call fcn.0040f360
add esp, 0x18
mov ecx, dword [esp + 0x14]
mov edx, 0x3fff
cmp cx, dx
jne 0x40555d
mov al, byte [esi + 0xb]
test al, 8
je 0x40555d
mov ecx, dword [esp + 0x11c]
push edx
mov edx, dword [esp + 0x11c]
push ebp
and al, 0xf7
push ebx
mov byte [esi + 0xb], al
mov eax, dword [esp + 0x12c]
push eax
push ecx
push edx
jmp 0x40510f
mov dl, byte [esp + 0x1a]
test dl, dl
je 0x4055da
mov al, byte [esi + 0x11]
cmp al, 2
jne 0x4055b2
mov esi, dword [esp + 0x128]
push 0xffc3d44e
push 0
push 0
push edi
push esi
push 1
call fcn.0040f360
push 0xffc3d44d
push 0
push 0
push edi
push esi
push 2
call fcn.0040f360
mov eax, dword [esp + 0x160]
push 0
push SysReAllocString
push 0x3fff
push eax
push edi
push esi
jmp 0x404f4b
cmp al, 1
jne 0x4055fc
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x11c]
mov eax, dword [esp + 0x118]
push 0x3fff
push ebp
push ebx
push ecx
push edx
push eax
jmp 0x40510f
cmp byte [esi + 0x11], 0
je 0x4055fc
mov eax, 0x3fff
cmp cx, ax
jne 0x4055fc
cmp byte [esi + 4], 0
jne 0x4055b6
test byte [esi + 0xb], 1
je 0x405d4c
jmp 0x4055b6
cmp byte [esi + 9], 0
jne 0x405634
cmp byte [esi + 4], 0
jne 0x405641
test byte [esi + 0xb], 1
jne 0x405641
test dl, dl
jne 0x405641
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x128]
push 0
push SysReAllocString
push 0x3fff
push eax
push edi
push ecx
jmp 0x406772
cmp byte [esp + 0x22], 0
jne 0x405669
cmp byte [esi + 0xa], 0
jne 0x405669
mov edx, dword [esp + 0x120]
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
push 0x3fff
push ebp
push ebx
push edx
push eax
push ecx
jmp 0x40510f
mov ecx, dword [esp + 0x14]
cmp byte [esp + 0x13], 0
jne 0x405684
mov edx, 0x3fff
cmp cx, dx
jne 0x405684
push 1
call fcn.004118e0
add esp, 4
cmp dword [0x4c73b8], 0
mov byte [esp + 0x12], 0
je 0x405d66
test bl, bl
je 0x4056a8
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0xa], 0
je 0x405d66
mov ecx, 0x3fff
cmp word [esp + 0x14], cx
jne 0x406022
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
xor edi, edi
cmp byte [ebp + 0x13], 0
jbe 0x40577f
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 0x405755
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x40573f
cmp byte [esp + 0x130], 0
jne 0x405767
mov ecx, 0x3fff
mov word [ebp + 6], ax
cmp dx, cx
je 0x405755
mov dword [esp + 0x14], edx
movzx ecx, byte [esp + 0x13]
mov eax, ecx
sub eax, 0x10
je 0x405852
dec eax
je 0x405839
dec eax
je 0x405820
lea ecx, [ecx + ecx*8]
shl ecx, 5
add ecx, ebx
mov dword [0x4c73b8], ecx
jmp 0x4057f5
cmp byte [esp + 0x130], 0
mov ebx, dword [0x4c8ee0]
jne 0x405755
mov edx, eax
mov byte [esp + 0x13], cl
movzx eax, byte [ebp + 0x13]
inc edi
add esi, 4
cmp edi, eax
jl 0x4056d5
jmp 0x405771
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 0x40570e
xor edi, edi
cmp byte [ebp + 0x14], 0
jbe 0x405803
lea esi, [ebp + 0xde]
lea ecx, [ecx]
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 0x40587d
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x40586b
cmp byte [esp + 0x130], 0
jne 0x40588f
mov ecx, 0x3fff
mov word [ebp + 6], ax
cmp dx, cx
je 0x40587d
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.0x405819
movzx eax, byte [esp + 0x128]
add eax, 0xffffff60
cmp eax, 5
ja case.default.0x405819
jmp dword [eax*4 + 0x40682c]
xor eax, eax
cmp byte [ebx + 0xb9ac], al
setne al
lea eax, [eax + eax*8 + 0x5c4]
shl eax, 5
add eax, ebx
jmp 0x4057f0
xor eax, eax
cmp byte [ebx + 0xb76c], al
setne al
lea eax, [eax + eax*8 + 0x5b2]
shl eax, 5
add eax, ebx
jmp 0x4057f0
xor eax, eax
cmp byte [ebx + 0xb52c], al
setne al
lea eax, [eax + eax*8 + 0x5a0]
shl eax, 5
add eax, ebx
jmp 0x4057f0
cmp byte [esp + 0x130], 0
jne 0x40587d
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 0x405790
jmp 0x40589a
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 0x405803
jmp 0x4057df
mov al, 0x11
jmp 0x4058bb
mov al, 0x12
jmp 0x4058bb
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 0x40598b
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 0x40596b
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x405955
cmp byte [esp + 0x130], 0
jne 0x405979
mov ecx, dword [esp + 0x1c]
mov word [ecx + 6], ax
mov eax, 0x3fff
cmp dx, ax
je 0x40596b
mov dword [esp + 0x14], edx
movzx ecx, byte [esp + 0x13]
mov eax, ecx
sub eax, 0x10
je 0x405ade
dec eax
je 0x405ac2
dec eax
je 0x405aa6
lea ecx, [ecx + ecx*8]
shl ecx, 5
add ecx, ebx
mov dword [0x4c73b8], ecx
jmp case.default.0x405819
cmp byte [esp + 0x130], 0
mov ebx, dword [0x4c8ee0]
jne 0x40596b
mov edx, eax
mov byte [esp + 0x13], cl
inc edi
add esi, 4
cmp edi, ebp
jl 0x4058e7
jmp 0x405983
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 0x405924
movzx edx, byte [esi + 0x14]
xor edi, edi
test edx, edx
jle case.default.0x405819
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 0x405b0a
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x405afa
cmp byte [esp + 0x130], 0
jne 0x405b18
mov ecx, dword [esp + 0x1c]
mov word [ecx + 6], ax
mov eax, 0x3fff
cmp bp, ax
je 0x405b0a
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 0x405b4d
mov eax, dword [0x4c5ac0]
cmp si, word [eax]
jae 0x405b44
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.0040a600
add esp, 8
mov dword [esp + 0x30], eax
test eax, eax
jne 0x405b3a
push 0x3fff
mov eax, dword [esp + 0x124]
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x11c]
push ebp
push ebx
push eax
mov eax, dword [esp + 0x13c]
push ecx
push edx
jmp 0x405111
xor eax, eax
cmp byte [ebx + 0xb9ac], al
setne al
lea eax, [eax + eax*8 + 0x5c4]
shl eax, 5
add eax, ebx
jmp 0x405a14
xor eax, eax
cmp byte [ebx + 0xb76c], al
setne al
lea eax, [eax + eax*8 + 0x5b2]
shl eax, 5
add eax, ebx
jmp 0x405a14
xor eax, eax
cmp byte [ebx + 0xb52c], al
setne al
lea eax, [eax + eax*8 + 0x5a0]
shl eax, 5
add eax, ebx
jmp 0x405a14
cmp byte [esp + 0x130], 0
jne 0x405b0a
mov ebp, eax
mov dword [esp + 0x38], ecx
inc edi
add esi, 4
cmp edi, edx
jl 0x4059b0
jmp 0x405b23
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.0x405819
jmp 0x405a03
mov esi, dword [esp + 0x14]
and esi, 0x3fff
mov eax, dword [0x4c73b8]
mov byte [eax + 0x11], 2
mov ecx, 0x3ffe
cmp si, cx
je 0x405b65
mov edx, 0x3ffd
cmp si, dx
jne 0x405d66
cmp byte [esp + 0x130], 0
jne 0x405b77
mov eax, dword [esp + 0x1c]
mov byte [eax + 0xf], 1
test byte [0x4c84a5], 0xc
jne 0x405b97
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0040f360
add esp, 0x18
mov ebx, dword [esp + 0x128]
cmp bl, 0xa2
je 0x405ba8
cmp bl, 0xa3
jne 0x405bd0
cmp byte [esp + 0x130], 0
jne 0x405bd0
mov edi, dword [esp + 0x12c]
push 0xffc3d44d
push 0
push 0
push edi
push ebx
push 1
call fcn.0040f360
add esp, 0x18
jmp 0x405bd7
mov edi, dword [esp + 0x12c]
mov ecx, dword [0x4c73b8]
mov edx, 0x3ffd
mov byte [ecx + 0xd], 1
cmp si, dx
jne 0x405c16
test byte [0x4c84a5], 0x30
jne 0x405c0b
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 0
call fcn.0040f360
add esp, 0x18
mov eax, dword [0x4c73b8]
mov byte [eax + 0xe], 1
jmp 0x405c8f
mov ecx, 0x3ffe
cmp si, cx
jne 0x405c8f
cmp bl, 0xa0
je 0x405c2a
cmp bl, 0xa1
jne 0x405c49
cmp byte [esp + 0x130], 0
jne 0x405c49
push 0xffc3d44d
push 0
push 0
push edi
push ebx
push 1
call fcn.0040f360
add esp, 0x18
test byte [0x4c84a5], 0x10
je 0x405c6c
push 0xffc3d44d
push 0
push 0
push 0
push 0xa0
push 1
call fcn.0040f360
add esp, 0x18
test byte [0x4c84a5], 0x20
je 0x405c8f
push 0xffc3d44d
push 0
push 0
push 0
push 0xa1
push 1
call fcn.0040f360
add esp, 0x18
test byte [0x4c84a5], 1
je 0x405cb2
push 0xffc3d44d
push 0
push 0
push 0
push 0xa2
push 1
call fcn.0040f360
add esp, 0x18
test byte [0x4c84a5], 2
je 0x405cd5
push 0xffc3d44d
push 0
push 0
push 0
push 0xa3
push 1
call fcn.0040f360
add esp, 0x18
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0040f360
mov edx, 0x3ffd
add esp, 0x18
cmp si, dx
jne 0x405d31
mov eax, dword [0x4c73b8]
cmp byte [eax + 0xe], 0
je 0x405d31
cmp bl, 0x60
jb 0x405d0b
cmp bl, 0x69
jbe 0x405d10
cmp bl, 0x6e
jne 0x405d31
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
call fcn.0040f360
mov ecx, dword [0x4c73b8]
add esp, 0x18
mov byte [ecx + 0xe], 0
cmp byte [esp + 0x130], 0
mov edx, 0x68
mov word [ebp + 4], dx
jne 0x405d4c
mov eax, dword [esp + 0x1c]
mov byte [eax + 0x10], 1
mov ecx, dword [esp + 0x130]
push 0
push SysReAllocString
push 0x3fff
push ecx
push edi
jmp 0x40676a
mov eax, 0x3fff
cmp word [esp + 0x14], ax
jne 0x406022
mov ecx, dword [esp + 0x1c]
mov cl, byte [ecx + 4]
mov al, byte [0x4c84a6]
test cl, cl
je 0x405d8a
not cl
and al, cl
mov edi, dword [esp + 0x118]
mov esi, dword [0x4c85d8]
cmp edi, esi
jne 0x405dbf
cmp byte [esp + 0x23], 0
je 0x405dbf
mov ecx, dword [0x4c8ed8]
movzx edx, al
shl edx, 9
add edx, dword [esp + 0x2c]
movzx edx, word [ecx + edx*2]
mov cl, byte [esp + 0x128]
jmp 0x405ddb
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 0x405e51
cmp byte [0x4c73b6], 0
je 0x405e51
cmp cl, 9
je 0x405e51
and al, 0xf3
cmp edi, esi
jne 0x405e1a
cmp byte [esp + 0x23], 0
je 0x405e1a
mov ecx, dword [0x4c8ed8]
movzx eax, al
shl eax, 9
add eax, dword [esp + 0x2c]
movzx edx, word [ecx + eax*2]
jmp 0x405e2f
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 0x405e4b
mov ecx, ebx
cmp ax, cx
jb 0x405e51
mov edx, ebx
mov dword [esp + 0x14], edx
test edx, 0x4000
je 0x405eb1
cmp byte [esp + 0x130], 0
jne 0x405f55
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 0x405fe0
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0x118]
push 0x3fff
push ebp
push 0
push eax
mov eax, dword [esp + 0x13c]
push ecx
push edx
jmp 0x405111
mov eax, ebx
cmp dx, ax
je 0x405f65
mov ecx, dword [0x4c5ac0]
and edx, eax
cmp byte [esp + 0x130], 0
mov eax, edx
je 0x405f3c
cmp ax, word [ecx]
jae 0x405f33
movzx ebx, ax
mov eax, dword [0x4c8edc]
add ebx, ebx
mov edx, 0x3fff
cmp word [ebx + eax], dx
je 0x405f33
cmp byte [esp + 0x1b], 0
jne 0x405f23
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.0040a600
add esp, 8
mov dword [esp + 0x30], eax
test eax, eax
jne 0x405f55
mov ecx, dword [0x4c8edc]
movzx edx, word [ebx + ecx]
mov dword [esp + 0x14], edx
jmp 0x405f55
cmp byte [esp + 0x1b], 0
jne 0x405f65
jmp 0x405f55
cmp ax, word [ecx]
jae 0x405f55
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 0x406022
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x1c]
test al, al
je 0x405e74
cmp byte [ecx + 4], 0
jne 0x405fb5
test byte [ecx + 0xb], 1
jne 0x405fb5
cmp byte [ecx + 8], 0
je 0x405fb5
cmp byte [esp + 0x1a], 0
jne 0x405fb5
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 0x406772
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x11c]
push 0x3fff
push ebp
push eax
mov eax, dword [esp + 0x124]
push ecx
push edx
push eax
mov eax, dword [esp + 0x144]
jmp 0x405111
push 1
push eax
add ecx, 0xb
xor esi, esi
lea eax, [esp + 0x1a]
xor edi, edi
call fcn.0040a600
add esp, 8
cmp byte [esp + 0x12], 0
jne 0x405e85
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x128]
push edi
push SysReAllocString
push 0x3fff
push edi
push eax
push ecx
jmp 0x406772
mov ebx, dword [esp + 0x1c]
mov al, byte [ebx + 0xb]
add ebx, 0xb
mov dword [esp + 0x34], ebx
test al, 8
je 0x406047
cmp byte [esp + 0x130], 0
je 0x406047
and al, 0xf7
mov byte [esp + 0x12], 1
mov byte [ebx], al
mov edx, dword [esp + 0x14]
mov eax, dword [0x4c5ac0]
and edx, 0x3fff
cmp dx, word [eax]
jae 0x406159
cmp dword [esp + 0x30], 0
jne 0x406159
mov ecx, dword [esp + 0x130]
mov edi, dword [esp + 0x134]
push ecx
lea edx, [esp + 0x18]
push edx
lea esi, [ebp + 4]
lea eax, [esp + 0x1a]
mov ecx, ebx
call fcn.0040a600
add esp, 8
mov dword [esp + 0x30], eax
test eax, eax
jne 0x406159
mov eax, dword [esp + 0x130]
test al, al
je 0x4060ff
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + 0x10], 0
je 0x4060d4
mov ecx, dword [esp + 0x128]
push 0
push SysReAllocString
push 0x3fff
mov edx, eax
mov eax, dword [esp + 0x138]
push edx
push eax
push ecx
jmp 0x406772
mov edx, dword [esp + 0x120]
mov ecx, dword [esp + 0x118]
push 0x3fff
push ebp
push eax
mov eax, dword [esp + 0x128]
push edx
push eax
mov eax, dword [esp + 0x140]
push ecx
jmp 0x405111
mov eax, dword [esp + 0x1c]
add eax, 6
mov edx, 0x3fff
cmp word [eax], dx
je 0x405e85
push 1
push eax
xor esi, esi
lea eax, [esp + 0x1a]
mov ecx, ebx
xor edi, edi
mov byte [esp + 0x1a], 0
call fcn.0040a600
add esp, 8
cmp byte [esp + 0x12], 0
jne 0x405e85
mov eax, dword [esp + 0x34]
and byte [eax], 0xf7
mov eax, dword [esp + 0x1c]
push edi
push SysReAllocString
push 0x3fff
mov byte [eax + 0x10], 1
push edi
jmp 0x406762
mov esi, dword [esp + 0x14]
mov dl, byte [0x4c84a5]
and esi, 0x3fff
test dl, 0xcc
je 0x40622e
cmp byte [esp + 0x12], 0
jne 0x40622e
cmp byte [0x4c73b7], 0
jne 0x406199
mov eax, dword [esp + 0x118]
cmp eax, dword [0x4c85dc]
jne 0x40622e
mov bl, byte [0x4c84a7]
test dl, 0xc0
je 0x4061cb
test bl, 0xc0
jne 0x4061c2
push 0xc0
mov eax, esi
call fcn.0040a850
mov dl, byte [0x4c84a5]
add esp, 4
test al, al
je 0x4061cb
mov byte [0x4c73bc], 1
jmp 0x40622e
cmp byte [0x4c73bc], 0
jne 0x40622e
test dl, 0xc
je 0x40622e
test dl, 3
jne 0x40622e
test bl, 0xc
jne 0x4061f9
push 0xc
mov eax, esi
call fcn.0040a850
mov dl, byte [0x4c84a5]
add esp, 4
test al, al
je 0x40622e
cmp dword [0x4c85d8], 0
je 0x40620b
mov byte [0x4c73bc], 1
jmp 0x40622e
movzx ecx, byte [0x4c4385]
push 0xffc3d44d
push 0
push 0
push 0
push ecx
push 2
call fcn.0040f360
mov dl, byte [0x4c84a5]
add esp, 0x18
mov eax, esi
lea ecx, [eax - 0x3ffa]
cmp ecx, 4
ja case.default.0x40623f
jmp dword [ecx*4 + 0x406844]
cmp byte [0x4c73b6], 0
jne case.0x40623f.16379
mov edx, dword [esp + 0x130]
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x11c]
push 0x3fff
push ebp
push edx
mov edx, dword [esp + 0x124]
push eax
mov eax, dword [esp + 0x13c]
push ecx
push edx
jmp 0x405111
xor al, al
mov byte [esp + 0x1b], al
test dl, 4
je 0x406290
mov al, 0xa4
jmp 0x406297
test dl, 8
je 0x40629b
mov al, 0xa5
mov byte [esp + 0x1b], al
cmp byte [0x4c73b6], 0
je 0x406319
mov ecx, 0x3ffb
cmp si, cx
je case.0x40623f.16381
test al, al
movzx eax, al
jne 0x4062be
mov eax, 0x12
push 0xffc3d44d
push 0
push 0
push 0
push eax
push 1
call fcn.0040f360
mov edx, dword [esp + 0x34]
add esp, 0x18
cmp byte [edx + 4], 0
je 0x40630d
mov eax, dword [esp + 0x128]
cmp al, 0x5b
je 0x40630d
cmp al, 0x5c
je 0x40630d
cmp byte [esp + 0x130], 0
jne 0x40630d
push 0xffc3d44d
push 0
push 0
push 0
push eax
push 1
call fcn.0040f360
add esp, 0x18
mov byte [0x4c73b6], 0
jmp 0x4065b1
mov al, byte [esp + 0x128]
cmp al, 0xa4
je 0x40632d
mov byte [esp + 0x27], 0
cmp al, 0xa5
jne 0x406332
mov byte [esp + 0x27], 1
cmp al, 0xa0
je 0x40633e
cmp al, 0xa1
je 0x40633e
xor bl, bl
jmp 0x406340
mov bl, 1
mov byte [esp + 0x22], bl
cmp al, 0xa2
je 0x406351
mov byte [esp + 0x13], 0
cmp al, 0xa3
jne 0x406356
mov byte [esp + 0x13], 1
xor cl, cl
mov byte [esp + 0x2c], cl
test dl, 0x10
je 0x406369
mov cl, 0xa0
mov byte [esp + 0x2c], cl
jmp 0x406390
test dl, 0x20
je 0x406376
mov cl, 0xa1
mov byte [esp + 0x2c], cl
jmp 0x406390
cmp byte [esp + 0x130], 0
jne 0x40638a
test bl, bl
je 0x40638a
mov cl, al
mov byte [esp + 0x2c], cl
mov dl, byte [0x4c84a5]
mov byte [esp + 0x23], 0
test dl, 1
je 0x4063a1
mov byte [esp + 0x23], 0xa2
jmp 0x4063c2
test dl, 2
je 0x4063ad
mov byte [esp + 0x23], 0xa3
jmp 0x4063c2
cmp byte [esp + 0x130], 0
jne 0x4063c2
cmp byte [esp + 0x13], 0
je 0x4063c2
mov byte [esp + 0x23], al
mov esi, dword [esp + 0x2c]
xor bl, bl
test cl, cl
je 0x4063e4
push 0xffc3d44d
push 0
push 0
push 0
push esi
push 1
call fcn.0040f360
add esp, 0x18
mov bl, 1
cmp byte [esp + 0x23], 0
je 0x406405
mov eax, dword [esp + 0x23]
push 0xffc3d44d
push 0
push 0
push 0
push eax
push 1
call fcn.0040f360
add esp, 0x18
cmp byte [esp + 0x27], 0
je 0x40641f
cmp byte [esp + 0x130], 0
jne 0x406427
mov al, byte [esp + 0x128]
jmp 0x406423
mov al, byte [esp + 0x1b]
test al, al
jne 0x40643e
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0040f360
add esp, 0x18
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0040f360
add esp, 0x18
test bl, bl
je 0x406476
cmp byte [esp + 0x22], 0
jne 0x406476
push 0xffc3d44d
push 0
push 0
push 0
push esi
push 0
call fcn.0040f360
add esp, 0x18
mov byte [0x4c73b6], 1
jmp 0x4065b1
cmp byte [0x4c73b6], 0
jne 0x4064bd
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x120]
mov eax, dword [esp + 0x11c]
push 0x3fff
push ebp
push ecx
mov ecx, dword [esp + 0x124]
push edx
push eax
mov eax, dword [esp + 0x140]
push ecx
jmp 0x405111
cmp byte [esp + 0x130], 0
mov ebx, dword [esp + 0x128]
jne 0x4064f8
cmp bl, 0xa2
je 0x4064e2
cmp bl, 0xa3
je 0x4064e2
cmp bl, 0xa0
je 0x4064e2
cmp bl, 0xa1
jne 0x4064f8
push 0xffc3d44d
push 0
push 0
push 0
push ebx
push 1
call fcn.0040f360
add esp, 0x18
test byte [0x4c84a5], 0xc
je 0x406515
cmp byte [esp + 0x130], 0
je 0x40652c
cmp bl, 0xa4
je 0x406515
cmp bl, 0xa5
jne 0x40652c
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0040f360
add esp, 0x18
mov edx, 0x3ffd
xor bl, bl
cmp si, dx
jne 0x40655a
test byte [0x4c84a5], 0x30
jne 0x40655a
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 0
call fcn.0040f360
add esp, 0x18
mov bl, 1
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0040f360
add esp, 0x18
test bl, bl
je 0x4065b1
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
call fcn.0040f360
add esp, 0x18
jmp 0x4065b1
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
test eax, eax
je 0x4065b1
cmp byte [eax], 5
jb 0x4065b1
mov ecx, dword [esp + 0x30]
movzx edx, word [ecx + 0x14]
shl edx, 0x10
or dword [esp + 0x28], edx
cmp byte [esp + 0x1a], 0
mov ebx, dword [esp + 0x130]
mov esi, dword [esp + 0x1c]
mov eax, 0x68
mov word [ebp + 4], ax
je 0x406622
test bl, bl
je 0x4066ec
cmp byte [esi + 8], 0
je 0x406622
mov edi, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
push 0xffc3d44e
push 0
push 0
push edi
push esi
push 1
call fcn.0040f360
push 0xffc3d44d
push 0
push 0
push edi
push esi
push 2
call fcn.0040f360
mov ecx, dword [esp + 0x58]
push 0
push SysReAllocString
push ecx
mov edx, ebx
push edx
push edi
push esi
jmp 0x404f4b
test bl, bl
je 0x4066ec
cmp byte [esi + 4], 0
je 0x40668a
cmp byte [esi + 0x10], 0
je 0x40665f
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x12c]
push 0
push SysReAllocString
push eax
mov eax, dword [esp + 0x134]
push ecx
push edx
push eax
jmp 0x406772
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x120]
mov eax, dword [esp + 0x11c]
push ecx
mov ecx, dword [esp + 0x11c]
push ebp
push ebx
push edx
push eax
mov eax, dword [esp + 0x140]
push ecx
jmp 0x405111
cmp byte [esp + 0x12], 0
je 0x406746
mov eax, dword [esp + 0x118]
cmp eax, dword [0x4c85dc]
jne 0x4066c8
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x120]
push edx
mov edx, dword [esp + 0x120]
push ebp
push ebx
push ecx
push edx
push eax
mov eax, dword [esp + 0x144]
jmp 0x405111
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x120]
push ecx
mov ecx, dword [esp + 0x120]
push ebp
push ebx
push edx
push ecx
push eax
mov eax, dword [esp + 0x144]
jmp 0x405111
mov eax, dword [0x4c73b8]
mov byte [esi + 0xf], 1
test eax, eax
je 0x406703
cmp byte [eax + 4], 0
je 0x406703
mov byte [eax + 0x11], 2
cmp byte [esp + 0x12], 0
je 0x40671b
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x28]
or byte [eax], 8
push edx
jmp 0x405a80
mov eax, dword [esp + 0x128]
cmp al, 0xa4
je 0x40672a
cmp al, 0xa5
jne 0x406746
mov ecx, dword [esp + 0x12c]
push 0xffc3d450
push 0
push 0
push ecx
push eax
push 1
call fcn.0040f360
add esp, 0x18
test bl, bl
jne 0x40674e
mov byte [esi + 0x10], 1
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x130]
push 0
push SysReAllocString
push edx
push eax
mov ecx, dword [esp + 0x13c]
push ecx
mov edx, dword [esp + 0x13c]
push edx
mov eax, dword [esp + 0x13c]
mov ecx, dword [esp + 0x130]
mov ebx, ebp
call fcn.00406860
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret