Function at 0x404520
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x100
mov eax, dword [esp + 0x120]
push ebx
mov bl, byte [esp + 0x118]
push ebp
mov ebp, dword [esp + 0x120]
push esi
push edi
mov dword [esp + 0x28], 0x3fff
cmp eax, 0xffc3d44f
je 0x404561
cmp eax, 0xffc3d44e
je 0x404561
mov byte [esp + 0x13], 0
cmp eax, 0xffc3d44d
jne 0x404566
mov byte [esp + 0x13], 1
mov ecx, dword [0x4c28bc]
test ecx, ecx
jne 0x40457d
lea edi, [esp + 0x3c]
mov dword [esp + 0x24], edi
jmp 0x404638
mov eax, dword [0x4c28c0]
mov edi, eax
imul edi, edi, 0xd4
inc eax
add edi, ecx
mov dword [esp + 0x24], edi
mov dword [0x4c28c0], eax
cmp eax, dword [0x4be3c8]
jl 0x4045a8
mov dword [0x4c28c0], 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 [0x4c4e50]
mov dword [0x4c28c4], eax
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
jns 0x4045d7
fadd dword [0x4b8960]
fdiv qword [0x4b8958]
mov dword [0x4c4e50], eax
fstp dword [edi + 8]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
je 0x404619
cmp esi, dword [0x4c28c8]
je 0x404611
mov eax, dword [0x4c1ea8]
push esi
lea edx, [edi + 0xc]
push edx
push 0x418
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x404632
xor ecx, ecx
mov word [edi + 0xc], cx
jmp 0x404632
mov eax, 0x49d874
lea edx, [edi + 0xc]
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x404623
mov dword [0x4c28c8], esi
cmp bl, 0xe7
jne 0x404662
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 0x404677
xor ebp, ebp
mov dword [esp + 0x128], ebp
mov edx, dword [esp + 0x114]
cmp edx, dword [0x4c1fdc]
jne 0x4046b7
mov bl, byte [esp + 0x134]
and bl, 1
jne 0x404831
cmp byte [esp + 0x12c], bl
movzx ecx, byte [esp + 0x124]
setne al
dec al
and al, 0x80
mov byte [ecx + 0x4c1ec8], al
jmp 0x404831
mov ebx, dword [esp + 0x134]
shr ebx, 4
and bl, 1
test ebp, 0x100
jne case.0x4046fe.13
push 0x90
call dword [sym.imp.USER32.dll_GetKeyState]
test al, 1
je case.0x4046fe.13
movzx eax, byte [esp + 0x124]
add eax, 0xfffffff4
cmp eax, 0x62
ja case.0x4046fe.13
movzx edx, byte [eax + 0x4062e4]
jmp dword [edx*4 + 0x4062b4]
cmp byte [esp + 0x12c], 0
sete al
mov byte [0x4c0d9c], al
jmp case.0x4046fe.13
cmp byte [esp + 0x12c], 0
sete cl
mov byte [0x4c0d9d], cl
jmp case.0x4046fe.13
cmp byte [esp + 0x12c], 0
sete dl
mov byte [0x4c0d9e], dl
jmp case.0x4046fe.13
cmp byte [esp + 0x12c], 0
sete al
mov byte [0x4c0d9f], al
jmp case.0x4046fe.13
cmp byte [esp + 0x12c], 0
sete cl
mov byte [0x4c0da0], cl
jmp case.0x4046fe.13
cmp byte [esp + 0x12c], 0
sete dl
mov byte [0x4c0da1], dl
jmp case.0x4046fe.13
cmp byte [esp + 0x12c], 0
sete al
mov byte [0x4c0da2], al
jmp case.0x4046fe.13
cmp byte [esp + 0x12c], 0
sete cl
mov byte [0x4c0da3], cl
jmp case.0x4046fe.13
cmp byte [esp + 0x12c], 0
sete dl
mov byte [0x4c0da4], dl
jmp case.0x4046fe.13
cmp byte [esp + 0x12c], 0
sete al
mov byte [0x4c0da5], al
jmp case.0x4046fe.13
cmp byte [esp + 0x12c], 0
sete cl
mov byte [0x4c0da6], cl
movzx esi, byte [esp + 0x124]
mov eax, dword [0x4c28e0]
lea edx, [esi + esi*8]
shl edx, 5
cmp byte [edx + eax + 4], 0
jne 0x404831
test byte [esp + 0x134], 0x10
jne 0x404831
mov ecx, dword [esp + 0x12c]
mov al, byte [esp + 0x124]
push ecx
call fcn.004076b0
add esp, 4
test al, al
je 0x404831
cmp byte [esp + 0x12c], 0
setne dl
dec dl
and dl, 0x80
mov byte [esi + 0x4c1ec8], dl
cmp byte [esp + 0x13], 0
je 0x40483c
mov al, 0x69
jmp 0x404848
neg bl
sbb bl, bl
and bl, 0x41
add bl, 0x20
mov al, bl
cmp byte [0x4c1fc8], 0
cbw
mov word [edi + 4], ax
je 0x4048a9
mov al, byte [esp + 0x124]
cmp al, 0x5b
je 0x404866
cmp al, 0x5c
jne 0x4048a9
cmp byte [esp + 0x12c], 0
jne 0x4048a9
mov ecx, dword [esp + 0x124]
mov eax, dword [esp + 0x120]
push 0
push SysReAllocString
push 0x3fff
push edi
push ebp
push ecx
mov ecx, dword [esp + 0x12c]
xor bl, bl
call fcn.004063e0
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret
cmp byte [0x4c0dbe], 0
je 0x404968
cmp byte [esp + 0x124], 0x1b
jne 0x404968
cmp byte [esp + 0x12c], 0
jne 0x404968
push 0
push str.32771
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x404968
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 0x404968
push 0xffc3d44d
push 0
push 0
push 0
push 0x1b
push 0
call fcn.0040eb20
mov dl, byte [0x4c1ea5]
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.0040eb20
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.004063e0
add esp, 0x48
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret
mov edx, dword [0x4c28e4]
movzx eax, bp
lea ecx, [eax + eax*8]
shl ecx, 5
mov dword [esp + 0x34], eax
lea eax, [ecx + edx]
mov edx, dword [0x4c1fd8]
mov cl, byte [eax + 0x12]
mov byte [esp + 0x2f], cl
cmp dword [esp + 0x114], edx
jne 0x4049a0
test cl, cl
je 0x4049a0
mov esi, eax
mov dword [esp + 0x1c], eax
jmp 0x4049b8
movzx eax, byte [esp + 0x124]
lea esi, [eax + eax*8]
shl esi, 5
add esi, dword [0x4c28e0]
mov dword [esp + 0x1c], esi
cmp byte [esp + 0x13], 0
je 0x404a1d
cmp dword [esp + 0x130], 0xffc3d44e
jne 0x4049f0
cmp byte [esp + 0x12c], 0
je 0x4049f0
cmp dword [0x4c0dc0], esi
jne 0x4049f0
mov byte [esi + 0xc], 0
mov byte [esi + 0xf], 0
mov dword [0x4c0dc0], 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 0x40628f
cmp byte [esp + 0x12c], 0
jne 0x404a34
mov ecx, 0x3fff
mov byte [esi + 0x10], 0
mov word [esi + 6], cx
mov ebx, dword [esp + 0x114]
cmp ebx, edx
jne 0x404afb
cmp byte [esp + 0x12c], 0
je 0x404b69
cmp byte [0x4c0dc6], 0
mov al, byte [esp + 0x124]
je 0x404a65
cmp al, 0x5b
je 0x404a94
cmp byte [0x4c0dc5], 0
je 0x404a72
cmp al, 0x5c
je 0x404a94
cmp byte [0x4c0dc4], 0
je 0x404a7f
cmp al, 0xa4
je 0x404a94
cmp byte [0x4c0dbf], 0
je 0x404b69
cmp al, 0xa5
jne 0x404b69
movzx eax, al
add eax, 0xffffffa5
cmp eax, 0x4a
ja case.0x404aa6.93
movzx edx, byte [eax + 0x40635c]
jmp dword [edx*4 + 0x406348]
mov byte [0x4c0dc6], 0
jmp case.0x404aa6.93
mov byte [0x4c0dc5], 0
jmp case.0x404aa6.93
mov byte [0x4c0dc4], 0
jmp case.0x404aa6.93
mov byte [0x4c0dbf], 0
test byte [0x4c1ea5], 3
jne 0x404b69
movzx eax, byte [0x4be375]
push 0xffc3d44d
push 0
push 0
push 0
push eax
push 2
call fcn.0040eb20
add esp, 0x18
jmp 0x404b69
mov al, byte [esp + 0x124]
test al, al
jne 0x404b2e
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 0x406296
cmp al, 1
je 0x404b36
cmp al, 2
jne 0x404b69
cmp dword [0x4c2034], 0
jne 0x406262
push 0
push str.32768
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x404b69
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x4c3fc0]
je 0x406262
mov edx, dword [0x4c0dc0]
mov ecx, dword [0x4c28e0]
test edx, edx
je 0x404ba5
cmp edx, esi
je 0x404ba5
cmp byte [esp + 0x12c], 0
jne 0x404ba5
cmp ebx, dword [0x4c1fd8]
jne 0x404b99
xor eax, eax
cmp byte [esi + 4], al
sete al
jmp 0x404b9d
movzx eax, byte [edx + 4]
test eax, eax
je 0x404ba5
mov byte [edx + 0x11], 1
cmp byte [esi + 8], 0
jne 0x404bc6
cmp byte [esi + 9], 0
jne 0x404bc6
mov ecx, dword [esp + 0x12c]
push 0
push 0x3fff
push edi
push ecx
jmp 0x40627e
cmp byte [esp + 0x12c], 0
mov byte [esp + 0x33], 0
mov dword [esp + 0x14], 0x3fff
mov dword [esp + 0x20], 0
je 0x404c20
mov al, byte [esi + 0xf]
mov dl, byte [esi + 0xc]
mov byte [esp + 0x12], al
movzx eax, word [esi + 6]
mov byte [esp + 0x1b], dl
mov edx, 0x3fff
mov byte [esi + 0xf], 0
cmp ax, dx
je 0x404c12
mov dword [esp + 0x14], eax
mov byte [esp + 0x33], 1
mov word [esi + 6], dx
mov edx, dword [0x4c0dc0]
cmp byte [esp + 0x12c], 0
sete al
mov byte [esi + 0xc], al
mov eax, dword [0x4c1fd8]
mov byte [esp + 0x11], 0
cmp ebx, eax
jne 0x404ca9
cmp byte [esi + 4], 0
je 0x404ccc
cmp byte [ecx + 0xb64c], 0
jne 0x404c54
cmp byte [ecx + 0xb76c], 0
jne 0x404c54
xor eax, eax
jmp 0x404c59
mov eax, 1
cmp byte [ecx + 0xb88c], 0
mov byte [ecx + 0x132c], al
jne 0x404c75
cmp byte [ecx + 0xb9ac], 0
jne 0x404c75
xor eax, eax
jmp 0x404c7a
mov eax, 1
cmp byte [ecx + 0xb40c], 0
mov byte [ecx + 0x144c], al
jne 0x404c9c
cmp byte [ecx + 0xb52c], 0
jne 0x404c9c
xor eax, eax
mov byte [ecx + 0x120c], al
jmp 0x404ccc
mov eax, 1
mov byte [ecx + 0x120c], al
jmp 0x404ccc
test eax, eax
jne 0x404ccc
push 1
call fcn.00411140
mov edx, dword [0x4c0dc0]
add esp, 4
mov byte [0x4c1ea6], al
mov byte [0x4c1ea5], al
mov byte [esp + 0x11], 1
mov eax, dword [esi]
test eax, eax
je 0x404cdc
cmp dword [eax], 7
mov byte [esp + 0x13], 1
je 0x404ce1
mov byte [esp + 0x13], 0
mov al, byte [esi + 8]
test al, al
je 0x404e63
cmp byte [esp + 0x12c], 0
jne 0x404e63
test edx, edx
je 0x404d0c
cmp byte [esi + 9], 0
je 0x404d0c
cmp esi, edx
jne 0x404e63
cmp al, 1
jne 0x404d39
cmp byte [esp + 0x2f], 0
mov eax, dword [esp + 0x34]
jne 0x404d23
movzx eax, byte [esp + 0x124]
mov ecx, dword [esp + 0x2f]
push ecx
push eax
call fcn.004099b0
add esp, 8
test al, al
je 0x404d39
mov bl, 1
jmp 0x404d4c
xor bl, bl
cmp esi, dword [0x4c0dc0]
je 0x404d4c
mov dword [0x4c0dc0], esi
mov byte [esi + 0x11], bl
cmp byte [esi + 9], 0
je 0x404e02
cmp byte [esp + 0x11], 0
jne 0x404d6c
push 1
mov byte [esp + 0x15], 1
call fcn.00411140
add esp, 4
mov al, byte [esi + 4]
mov cl, byte [0x4c1ea6]
test al, al
je 0x404d7d
not al
and cl, al
test cl, cl
jne 0x404d85
test bl, bl
je 0x404e02
mov edx, dword [0x4c1fd8]
cmp dword [esp + 0x114], edx
jne 0x404db1
cmp byte [esp + 0x2f], 0
je 0x404db1
movzx eax, cl
mov ecx, dword [0x4c28d8]
shl eax, 9
add eax, dword [esp + 0x34]
movzx ecx, word [ecx + eax*2]
jmp 0x404dcb
movzx eax, byte [esp + 0x124]
movzx edx, cl
mov ecx, dword [0x4c28d4]
shl edx, 8
add edx, eax
movzx ecx, word [ecx + edx*2]
mov dword [esp + 0x14], ecx
test ecx, 0x4000
je 0x404ddd
mov word [esi + 6], cx
jmp 0x404e10
mov edx, dword [0x4bf608]
mov eax, ecx
and eax, 0x3fff
cmp ax, word [edx]
jae 0x404e06
mov edx, dword [0x4c28dc]
movzx eax, ax
mov ax, word [edx + eax*2]
mov word [esi + 6], ax
jmp 0x404e06
mov ecx, dword [esp + 0x14]
mov edx, 0x3fff
cmp cx, dx
jne 0x404e63
test bl, bl
je 0x404e21
or byte [esi + 0xb], 8
mov eax, 0x23
mov word [edi + 4], ax
cmp byte [esi + 4], 0
jne 0x404e3c
test byte [esi + 0xb], 1
jne 0x404e3c
cmp byte [esp + 0x13], 0
jne 0x404e3c
test bl, bl
je 0x404870
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 0x40628f
cmp byte [esi + 9], 0
mov edx, dword [esp + 0x12c]
mov byte [esp + 0x1a], 0
je 0x404f03
test dl, dl
je 0x404f03
cmp dword [0x4c0dc0], esi
jne 0x404e9a
cmp byte [esp + 0x12], 0
je 0x404f03
mov dword [0x4c0dc0], 0
cmp byte [esi + 0xa], 0
jne 0x404efe
mov al, byte [esi + 0xb]
test al, 8
je 0x404eb0
xor cl, cl
and al, 0xf7
mov byte [esi + 0xb], al
jmp 0x404eb2
mov cl, 1
cmp byte [esp + 0x12], 0
je 0x404ed8
test cl, cl
je 0x404ed8
mov edx, dword [esp + 0x124]
push 0
push SysReAllocString
push 0x3fff
push edi
push ebp
push edx
jmp 0x405099
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 0x40628f
mov byte [esp + 0x1a], 1
cmp byte [esi + 8], 0
je 0x40510d
test dl, dl
je 0x40510d
cmp dword [0x4c0dc0], esi
jne 0x404f27
mov dword [0x4c0dc0], 0
cmp byte [esi + 0xd], 0
je 0x404f48
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 1
mov byte [esi + 0xd], 0
call fcn.0040eb20
add esp, 0x18
cmp byte [esi + 0xe], 0
je 0x404f69
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
mov byte [esi + 0xe], 0
call fcn.0040eb20
add esp, 0x18
mov ebx, dword [esp + 0x14]
mov eax, 0x3fff
cmp bx, ax
jne 0x404fb0
mov al, byte [esi + 0xb]
test al, 8
je 0x404fb0
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 0x40628f
mov cl, byte [esp + 0x13]
mov al, byte [esi + 0x11]
test cl, cl
je 0x40505a
cmp al, 2
jne 0x405025
mov esi, dword [esp + 0x124]
push 0xffc3d44e
push 0
push 0
push ebp
push esi
push 1
call fcn.0040eb20
push 0xffc3d44d
push 0
push 0
push ebp
push esi
push 2
call fcn.0040eb20
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.004063e0
add esp, 0x48
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret
cmp al, 1
jne 0x4050c1
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 0x40628f
test al, al
je 0x4050c1
mov edx, 0x3fff
cmp bx, dx
jne 0x4050c1
cmp byte [esi + 4], 0
je 0x40507d
cmp al, 2
jne 0x404f83
push 1
jmp 0x4049f2
test byte [esi + 0xb], 1
push 0
jne 0x40502f
mov eax, dword [esp + 0x128]
push SysReAllocString
push 0x3fff
push edi
push ebp
push eax
mov ecx, dword [esp + 0x12c]
mov bl, byte [esp + 0x144]
mov eax, dword [esp + 0x138]
call fcn.004063e0
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret
cmp byte [esi + 9], 0
jne 0x4050fb
cmp byte [esi + 4], 0
jne 0x40502d
test byte [esi + 0xb], 1
jne 0x40502d
test cl, cl
jne 0x40502d
mov ecx, dword [esp + 0x124]
push 0
push SysReAllocString
push 0x3fff
push edi
push ebp
push ecx
jmp 0x405099
cmp byte [esp + 0x1b], 0
jne 0x405111
cmp byte [esi + 0xa], 0
jne 0x405111
jmp 0x4049f0
mov ebx, dword [esp + 0x14]
cmp byte [esp + 0x11], 0
jne 0x40512c
mov ecx, 0x3fff
cmp bx, cx
jne 0x40512c
push 1
call fcn.00411140
add esp, 4
cmp dword [0x4c0dc0], 0
mov byte [esp + 0x12], 0
je 0x40583f
cmp byte [esp + 0x12c], 0
je 0x405156
mov edx, dword [esp + 0x1c]
cmp byte [edx + 0xa], 0
je 0x40583f
mov eax, 0x3fff
cmp bx, ax
jne 0x405ae7
mov edi, dword [esp + 0x1c]
xor ebp, ebp
cmp byte [edi + 0x13], 0
jbe 0x4051fe
mov edx, dword [0x4c28e0]
lea esi, [edi + 0x16]
lea ecx, [ecx]
mov cl, byte [esi]
movzx eax, cl
lea eax, [eax + eax*8]
shl eax, 5
cmp byte [eax + edx + 0xc], 0
je 0x4051d4
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x4051be
cmp byte [esp + 0x12c], 0
jne 0x4051e2
mov ecx, 0x3fff
mov word [edi + 6], ax
cmp bx, cx
je 0x4051d4
mov dword [esp + 0x14], ebx
jmp 0x4052a6
cmp byte [esp + 0x12c], 0
mov edx, dword [0x4c28e0]
jne 0x4051d4
mov ebx, eax
mov byte [esp + 0x11], cl
movzx eax, byte [edi + 0x13]
inc ebp
add esi, 4
cmp ebp, eax
jl 0x405180
jmp 0x4051ec
mov cl, byte [esi]
movzx ebx, word [esi + 2]
mov byte [esp + 0x11], cl
mov edx, 0x3fff
mov dword [esp + 0x14], ebx
cmp bx, dx
jne 0x4052a0
xor ebp, ebp
cmp byte [edi + 0x14], 0
jbe 0x405283
lea esi, [edi + 0xde]
movzx ecx, word [esi]
mov edx, dword [0x4c28e4]
mov eax, ecx
lea eax, [eax + eax*8]
shl eax, 5
cmp byte [eax + edx + 0xc], 0
je 0x405329
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x405319
cmp byte [esp + 0x12c], 0
jne 0x40533b
mov word [edi + 6], ax
mov eax, 0x3fff
cmp bx, ax
je 0x405329
mov dword [esp + 0x14], ebx
movzx eax, word [esp + 0x38]
lea eax, [eax + eax*8]
shl eax, 5
add eax, dword [0x4c28e4]
mov dword [0x4c0dc0], eax
mov edx, 0x3fff
cmp bx, dx
jne case.default.0x405299
movzx eax, byte [esp + 0x124]
add eax, 0xffffff60
cmp eax, 5
ja case.default.0x405299
jmp dword [eax*4 + 0x4063a8]
mov edx, dword [0x4c28e0]
movzx ecx, byte [esp + 0x11]
mov eax, ecx
sub eax, 0x10
je 0x4052fd
dec eax
je 0x4052e1
dec eax
je 0x4052c8
lea ecx, [ecx + ecx*8]
shl ecx, 5
add ecx, edx
mov dword [0x4c0dc0], ecx
jmp 0x405275
xor eax, eax
cmp byte [edx + 0xb9ac], al
setne al
lea eax, [eax + eax*8 + 0x5c4]
shl eax, 5
add eax, edx
jmp 0x405270
xor eax, eax
cmp byte [edx + 0xb76c], al
setne al
lea eax, [eax + eax*8 + 0x5b2]
shl eax, 5
add eax, edx
jmp 0x405270
xor eax, eax
cmp byte [edx + 0xb52c], al
setne al
lea eax, [eax + eax*8 + 0x5a0]
shl eax, 5
add eax, edx
jmp 0x405270
cmp byte [esp + 0x12c], 0
jne 0x405329
mov ebx, eax
mov dword [esp + 0x38], ecx
movzx edx, byte [edi + 0x14]
inc ebp
add esi, 4
cmp ebp, edx
jl 0x405210
jmp 0x405346
movzx eax, word [esi]
movzx ebx, word [esi + 2]
mov dword [esp + 0x38], eax
mov ecx, 0x3fff
mov dword [esp + 0x14], ebx
cmp bx, cx
je 0x405283
jmp 0x40525f
mov al, 0x11
jmp 0x405367
mov al, 0x12
jmp 0x405367
mov al, 0x10
mov ecx, dword [0x4c28e0]
movzx eax, al
lea edx, [eax + eax*8]
shl edx, 5
movzx ebp, byte [edx + ecx + 0x13]
add edx, ecx
xor edi, edi
test ebp, ebp
jle 0x405403
lea esi, [edx + 0x16]
lea ebx, [ebx]
mov cl, byte [esi]
mov ebx, dword [0x4c28e0]
movzx eax, cl
lea eax, [eax + eax*8]
shl eax, 5
cmp byte [eax + ebx + 0xc], 0
je 0x4053e7
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x4053d5
cmp byte [esp + 0x12c], 0
jne 0x4053f5
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov word [ecx + 6], ax
mov eax, 0x3fff
cmp bx, ax
jne 0x405411
jmp 0x4053eb
cmp byte [esp + 0x12c], 0
jne 0x4053e7
mov dword [esp + 0x14], eax
mov byte [esp + 0x11], cl
mov ebx, dword [esp + 0x14]
inc edi
add esi, 4
cmp edi, ebp
jl 0x405390
jmp 0x405403
movzx ebx, word [esi + 2]
mov cl, byte [esi]
mov dword [esp + 0x14], ebx
mov byte [esp + 0x11], cl
mov eax, 0x3fff
cmp bx, ax
je 0x40549d
movzx ecx, byte [esp + 0x11]
mov eax, ecx
sub eax, 0x10
je 0x40547e
dec eax
je 0x40545c
dec eax
je 0x40543a
lea ecx, [ecx + ecx*8]
shl ecx, 5
add ecx, dword [0x4c28e0]
mov dword [0x4c0dc0], ecx
jmp case.default.0x405299
mov ecx, dword [0x4c28e0]
xor eax, eax
cmp byte [ecx + 0xb9ac], al
setne al
lea eax, [eax + eax*8 + 0x5c4]
shl eax, 5
add eax, ecx
jmp 0x405513
mov ecx, dword [0x4c28e0]
xor eax, eax
cmp byte [ecx + 0xb76c], al
setne al
lea eax, [eax + eax*8 + 0x5b2]
shl eax, 5
add eax, ecx
jmp 0x405513
mov ecx, dword [0x4c28e0]
xor eax, eax
cmp byte [ecx + 0xb52c], al
setne al
lea eax, [eax + eax*8 + 0x5a0]
shl eax, 5
add eax, ecx
jmp 0x405513
movzx ebp, byte [edx + 0x14]
xor edi, edi
test ebp, ebp
jle case.default.0x405299
lea esi, [edx + 0xde]
lea ecx, [ecx]
movzx ecx, word [esi]
mov eax, ecx
lea edx, [eax + eax*8]
mov eax, dword [0x4c28e4]
shl edx, 5
cmp byte [edx + eax + 0xc], 0
je 0x4055b5
movzx eax, word [esi + 2]
test eax, 0x4000
je 0x4055a3
cmp byte [esp + 0x12c], 0
jne 0x4055c3
mov ecx, dword [esp + 0x1c]
mov edx, 0x3fff
mov word [ecx + 6], ax
cmp bx, dx
je 0x4055b5
mov dword [esp + 0x14], ebx
movzx eax, word [esp + 0x38]
lea eax, [eax + eax*8]
shl eax, 5
add eax, dword [0x4c28e4]
mov dword [0x4c0dc0], eax
mov eax, ebx
and eax, 0x3fff
mov ecx, 0x3fff
mov esi, eax
cmp bx, cx
je 0x4055fc
mov edx, dword [0x4bf608]
cmp si, word [edx]
jae 0x4055f2
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x12c]
lea eax, [edi + 4]
push eax
lea eax, [esp + 0x16]
push eax
add ecx, 0xb
push ecx
lea edx, [esp + 0x20]
push esi
push edx
call fcn.00409c10
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4055e5
push eax
push 0x3fff
push edi
push esi
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x124]
push eax
mov eax, dword [esp + 0x13c]
push ecx
mov cl, byte [esp + 0x13c]
push edx
jmp 0x406298
cmp byte [esp + 0x12c], 0
jne 0x4055b5
mov ebx, eax
mov eax, ecx
mov dword [esp + 0x38], eax
inc edi
add esi, 4
cmp edi, ebp
jl 0x4054b0
jmp 0x4055ce
movzx ecx, word [esi]
movzx ebx, word [esi + 2]
mov dword [esp + 0x38], ecx
mov edx, 0x3fff
mov dword [esp + 0x14], ebx
cmp bx, dx
je case.default.0x405299
jmp 0x405502
mov ebx, dword [esp + 0x14]
mov eax, ebx
and eax, 0x3fff
mov esi, eax
mov ecx, dword [0x4c0dc0]
mov byte [ecx + 0x11], 2
mov edx, 0x3ffe
cmp si, dx
je 0x405614
mov eax, 0x3ffd
cmp si, ax
jne 0x40583f
cmp byte [esp + 0x12c], 0
jne 0x405626
mov ecx, dword [esp + 0x1c]
mov byte [ecx + 0xf], 1
test byte [0x4c1ea5], 0xc
jne 0x405646
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0040eb20
add esp, 0x18
mov al, byte [esp + 0x124]
cmp al, 0xa2
je 0x405655
cmp al, 0xa3
jne 0x405682
cmp byte [esp + 0x12c], 0
jne 0x405682
mov edx, dword [esp + 0x128]
mov eax, dword [esp + 0x124]
push 0xffc3d44d
push 0
push 0
push edx
push eax
push 1
call fcn.0040eb20
add esp, 0x18
mov ecx, dword [0x4c0dc0]
mov edx, 0x3ffd
mov byte [ecx + 0xd], 1
cmp si, dx
jne 0x4056c4
test byte [0x4c1ea5], 0x30
jne 0x4056b6
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 0
call fcn.0040eb20
add esp, 0x18
mov eax, dword [0x4c0dc0]
mov byte [eax + 0xe], 1
jmp 0x405754
mov ecx, 0x3ffe
cmp si, cx
jne 0x405754
mov al, byte [esp + 0x124]
cmp al, 0xa0
je 0x4056e1
cmp al, 0xa1
jne 0x40570e
cmp byte [esp + 0x12c], 0
jne 0x40570e
mov edx, dword [esp + 0x128]
mov eax, dword [esp + 0x124]
push 0xffc3d44d
push 0
push 0
push edx
push eax
push 1
call fcn.0040eb20
add esp, 0x18
test byte [0x4c1ea5], 0x10
je 0x405731
push 0xffc3d44d
push 0
push 0
push 0
push 0xa0
push 1
call fcn.0040eb20
add esp, 0x18
test byte [0x4c1ea5], 0x20
je 0x405754
push 0xffc3d44d
push 0
push 0
push 0
push 0xa1
push 1
call fcn.0040eb20
add esp, 0x18
test byte [0x4c1ea5], 1
je 0x405777
push 0xffc3d44d
push 0
push 0
push 0
push 0xa2
push 1
call fcn.0040eb20
add esp, 0x18
test byte [0x4c1ea5], 2
je 0x40579a
push 0xffc3d44d
push 0
push 0
push 0
push 0xa3
push 1
call fcn.0040eb20
add esp, 0x18
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0040eb20
mov ecx, 0x3ffd
add esp, 0x18
cmp si, cx
jne 0x4057fa
mov edx, dword [0x4c0dc0]
cmp byte [edx + 0xe], 0
je 0x4057fa
mov al, byte [esp + 0x124]
cmp al, 0x60
jb 0x4057d6
cmp al, 0x69
jbe 0x4057da
cmp al, 0x6e
jne 0x4057fa
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
call fcn.0040eb20
mov eax, dword [0x4c0dc0]
add esp, 0x18
mov byte [eax + 0xe], 0
cmp byte [esp + 0x12c], 0
mov eax, dword [esp + 0x24]
mov ecx, 0x68
mov word [eax + 4], cx
jne 0x405819
mov edx, dword [esp + 0x1c]
mov byte [edx + 0x10], 1
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x124]
push 0
push SysReAllocString
push 0x3fff
push eax
push ecx
push edx
jmp 0x405099
mov eax, 0x3fff
cmp bx, ax
jne 0x405ae7
mov esi, dword [esp + 0x1c]
mov cl, byte [esi + 4]
mov al, byte [0x4c1ea6]
test cl, cl
je 0x405863
mov dl, cl
not dl
and al, dl
mov edi, dword [esp + 0x114]
cmp edi, dword [0x4c1fd8]
jne 0x40588b
cmp byte [esp + 0x2f], 0
je 0x40588b
mov ebx, dword [0x4c28d8]
movzx edx, al
shl edx, 9
add edx, dword [esp + 0x34]
jmp 0x4058a1
movzx ebx, byte [esp + 0x124]
movzx edx, al
shl edx, 8
add edx, ebx
mov ebx, dword [0x4c28d4]
movzx ebx, word [ebx + edx*2]
mov edx, 0x3fff
mov dword [esp + 0x14], ebx
cmp bx, dx
jne 0x405928
cmp byte [0x4c0dbe], 0
je 0x405928
mov dl, byte [esp + 0x124]
cmp dl, 9
je 0x405928
and al, 0xf3
cmp edi, dword [0x4c1fd8]
jne 0x4058eb
cmp byte [esp + 0x2f], 0
je 0x4058eb
mov edx, dword [0x4c28d8]
movzx eax, al
shl eax, 9
add eax, dword [esp + 0x34]
jmp 0x4058fc
movzx eax, al
movzx edx, dl
shl eax, 8
add eax, edx
mov edx, dword [0x4c28d4]
movzx ebx, word [edx + eax*2]
mov eax, ebx
and eax, 0x3fff
mov edx, 0x3ff9
mov dword [esp + 0x14], ebx
cmp ax, dx
jbe 0x40591f
mov edx, 0x3fff
cmp ax, dx
jb 0x405928
mov ebx, 0x3fff
mov dword [esp + 0x14], ebx
test ebx, 0x4000
je 0x405981
cmp byte [esp + 0x12c], 0
jne 0x4059e5
mov word [esi + 6], bx
lea eax, [esi + 6]
mov ecx, 0x3fff
push 0
cmp word [eax], cx
jne 0x405a76
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x120]
push ecx
mov ecx, dword [esp + 0x120]
push edx
push 0
push eax
mov eax, dword [esp + 0x13c]
push ecx
mov cl, byte [esp + 0x13c]
push edi
jmp 0x406298
mov eax, 0x3fff
cmp bx, ax
je 0x4059f3
mov edx, dword [0x4bf608]
mov eax, ebx
and eax, 0x3fff
cmp byte [esp + 0x12c], 0
je 0x4059cf
cmp ax, word [edx]
jae 0x4059c6
mov edx, dword [0x4c28dc]
movzx eax, ax
movzx eax, word [edx + eax*2]
mov edx, 0x3fff
cmp ax, dx
je 0x4059c6
mov ebx, eax
mov dword [esp + 0x14], ebx
jmp 0x4059e5
cmp byte [esp + 0x1a], 0
jne 0x4059f3
jmp 0x4059e5
cmp ax, word [edx]
jae 0x4059e5
mov edx, dword [0x4c28dc]
movzx eax, ax
mov ax, word [edx + eax*2]
mov word [esi + 6], ax
mov edx, 0x3fff
cmp bx, dx
jne 0x405ae7
cmp byte [esp + 0x12c], 0
je 0x405942
test cl, cl
jne 0x405a3e
test byte [esi + 0xb], 1
jne 0x405a3e
cmp byte [esi + 8], cl
je 0x405a3e
cmp byte [esp + 0x13], cl
jne 0x405a3e
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x124]
push 0
push SysReAllocString
push 0x3fff
push eax
push ecx
push edx
mov ecx, edi
jmp 0x4050a0
mov eax, dword [esp + 0x24]
push 0
push 0x3fff
push eax
mov ecx, dword [esp + 0x138]
mov edx, dword [esp + 0x128]
mov eax, dword [esp + 0x124]
push ecx
mov cl, byte [esp + 0x134]
push edx
push eax
mov eax, dword [esp + 0x140]
push edi
jmp 0x406298
lea edx, [esp + 0x16]
push edx
add esi, 0xb
push esi
push 1
push eax
call fcn.00409c10
mov eax, dword [esp + 0x38]
add esp, 0x14
cmp byte [esp + 0x12], 0
push 0
je 0x405ac3
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x11c]
push 0x3fff
push eax
mov eax, dword [esp + 0x134]
push 0
push ecx
mov cl, byte [esp + 0x138]
push edx
push edi
jmp 0x406298
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x128]
push SysReAllocString
push 0x3fff
push eax
push ecx
push edx
xor bl, bl
mov ecx, edi
jmp 0x4050a7
mov edi, dword [esp + 0x1c]
mov al, byte [edi + 0xb]
mov esi, dword [esp + 0x20]
add edi, 0xb
mov dword [esp + 0x34], edi
test al, 8
je 0x405b10
cmp byte [esp + 0x12c], 0
je 0x405b10
and al, 0xf7
mov byte [esp + 0x12], 1
mov byte [edi], al
mov ecx, dword [0x4bf608]
mov ebp, dword [esp + 0x24]
mov eax, ebx
and eax, 0x3fff
cmp ax, word [ecx]
jae 0x405b8a
test esi, esi
jne 0x405b8a
mov edi, dword [esp + 0x12c]
lea eax, [ebp + 4]
push eax
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x16]
push edx
push eax
lea ecx, [esp + 0x20]
push edi
push ecx
call fcn.00409c10
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x405b86
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x114]
push eax
mov eax, dword [esp + 0x11c]
push 0x3fff
push ebp
push edi
push edx
push eax
mov eax, dword [esp + 0x140]
push ecx
mov cl, byte [esp + 0x140]
jmp 0x406298
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x114]
mov edx, dword [0x4c1fd8]
mov al, byte [0x4c1ea5]
and ebx, 0x3fff
mov dword [esp + 0x20], ebx
cmp edi, edx
jne 0x405bde
test al, 0x3f
jne 0x405bfe
mov ecx, dword [0x4c28e0]
test al, 0x40
je 0x405bc8
cmp byte [ecx + 0x6668], 0
jne 0x405bc8
mov byte [0x4c0dc6], 1
test al, al
jns 0x405c04
cmp byte [ecx + 0x6788], 0
jne 0x405c04
mov byte [0x4c0dc5], 1
jmp 0x405c04
test al, 0xc
jne 0x405bfe
mov ecx, dword [0x4c28e0]
test al, 0x40
je 0x405bc8
cmp byte [ecx + 0x6668], 0
jne 0x405bc8
mov byte [0x4c0dc6], 1
jmp 0x405c04
mov ecx, dword [0x4c28e0]
test al, 4
je 0x405c33
cmp byte [ecx + 0xb888], 0
jne 0x405c33
test edx, edx
je 0x405c1e
mov byte [0x4c0dc4], 1
jmp 0x405c78
movzx edx, byte [0x4be375]
push 0xffc3d44d
push 0
push 0
push 0
push edx
jmp 0x405c6e
test al, 8
je 0x405c78
cmp byte [ecx + 0xb9a8], 0
jne 0x405c78
call fcn.004116a0
test al, al
jne 0x405c78
cmp dword [0x4c1fd8], 0
je 0x405c5b
mov byte [0x4c0dbf], 1
jmp 0x405c78
movzx eax, byte [0x4be375]
push 0xffc3d44d
push 0
push 0
push 0
push eax
push 2
call fcn.0040eb20
add esp, 0x18
mov edx, dword [esp + 0x20]
movzx eax, dx
lea ecx, [eax - 0x3ffa]
cmp ecx, 4
ja case.default.0x405c8e
jmp dword [ecx*4 + 0x4063c0]
cmp byte [0x4c0dbe], 0
jne case.0x405c8e.16379
push 0
push 0x3fff
push ebp
jmp 0x405a4a
mov cl, byte [0x4c1ea5]
xor al, al
mov byte [esp + 0x11], al
test cl, 4
je 0x405cc0
mov al, 0xa4
jmp 0x405cc7
test cl, 8
je 0x405ccb
mov al, 0xa5
mov byte [esp + 0x11], al
cmp byte [0x4c0dbe], 0
je 0x405d49
mov ecx, 0x3ffb
cmp dx, cx
je case.0x405c8e.16381
test al, al
movzx eax, al
jne 0x405cee
mov eax, 0x12
push 0xffc3d44d
push 0
push 0
push 0
push eax
push 1
call fcn.0040eb20
mov edx, dword [esp + 0x34]
add esp, 0x18
cmp byte [edx + 4], 0
je 0x405d3d
mov eax, dword [esp + 0x124]
cmp al, 0x5b
je 0x405d3d
cmp al, 0x5c
je 0x405d3d
cmp byte [esp + 0x12c], 0
jne 0x405d3d
push 0xffc3d44d
push 0
push 0
push 0
push eax
push 1
call fcn.0040eb20
add esp, 0x18
mov byte [0x4c0dbe], 0
jmp 0x405fe4
mov al, byte [esp + 0x124]
cmp al, 0xa4
je 0x405d5d
mov byte [esp + 0x1a], 0
cmp al, 0xa5
jne 0x405d62
mov byte [esp + 0x1a], 1
cmp al, 0xa0
je 0x405d6e
cmp al, 0xa1
je 0x405d6e
xor cl, cl
jmp 0x405d70
mov cl, 1
mov byte [esp + 0x1b], cl
cmp al, 0xa2
je 0x405d80
cmp al, 0xa3
je 0x405d80
xor dl, dl
jmp 0x405d82
mov dl, 1
xor al, al
test byte [0x4c1ea5], 0x10
mov byte [esp + 0x20], al
je 0x405d95
mov al, 0xa0
jmp 0x405db7
test byte [0x4c1ea5], 0x20
je 0x405da2
mov al, 0xa1
jmp 0x405db7
cmp byte [esp + 0x12c], 0
jne 0x405dbb
test cl, cl
je 0x405dbb
mov al, byte [esp + 0x124]
mov byte [esp + 0x20], al
mov cl, byte [0x4c1ea5]
mov byte [esp + 0x2f], 0
test cl, 1
je 0x405dd2
mov byte [esp + 0x2f], 0xa2
jmp 0x405df7
test cl, 2
je 0x405dde
mov byte [esp + 0x2f], 0xa3
jmp 0x405df7
cmp byte [esp + 0x12c], 0
jne 0x405df7
test dl, dl
je 0x405df7
mov cl, byte [esp + 0x124]
mov byte [esp + 0x2f], cl
mov edi, dword [esp + 0x20]
xor bl, bl
test al, al
je 0x405e19
push 0xffc3d44d
push 0
push 0
push 0
push edi
push 1
call fcn.0040eb20
add esp, 0x18
mov bl, 1
cmp byte [esp + 0x2f], 0
je 0x405e3a
mov edx, dword [esp + 0x2f]
push 0xffc3d44d
push 0
push 0
push 0
push edx
push 1
call fcn.0040eb20
add esp, 0x18
cmp byte [esp + 0x1a], 0
je 0x405e54
cmp byte [esp + 0x12c], 0
jne 0x405e5c
mov al, byte [esp + 0x124]
jmp 0x405e58
mov al, byte [esp + 0x11]
test al, al
jne 0x405e73
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0040eb20
add esp, 0x18
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0040eb20
add esp, 0x18
test bl, bl
je 0x405eab
cmp byte [esp + 0x1b], 0
jne 0x405eab
push 0xffc3d44d
push 0
push 0
push 0
push edi
push 0
call fcn.0040eb20
add esp, 0x18
mov byte [0x4c0dbe], 1
jmp 0x405fe4
cmp byte [0x4c0dbe], 0
jne 0x405ef4
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0x118]
push 0
push 0x3fff
push ebp
push eax
mov eax, dword [esp + 0x138]
push ecx
mov cl, byte [esp + 0x138]
push edx
push edi
jmp 0x406298
cmp byte [esp + 0x12c], 0
jne 0x405f32
mov al, byte [esp + 0x124]
cmp al, 0xa2
je 0x405f15
cmp al, 0xa3
je 0x405f15
cmp al, 0xa0
je 0x405f15
cmp al, 0xa1
jne 0x405f32
mov eax, dword [esp + 0x124]
push 0xffc3d44d
push 0
push 0
push 0
push eax
push 1
call fcn.0040eb20
add esp, 0x18
test byte [0x4c1ea5], 0xc
je 0x405f54
cmp byte [esp + 0x12c], 0
je 0x405f6b
mov al, byte [esp + 0x124]
cmp al, 0xa4
je 0x405f54
cmp al, 0xa5
jne 0x405f6b
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0040eb20
add esp, 0x18
mov ecx, 0x3ffd
xor bl, bl
cmp word [esp + 0x20], cx
jne 0x405f9b
test byte [0x4c1ea5], 0x30
jne 0x405f9b
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 0
call fcn.0040eb20
add esp, 0x18
mov bl, 1
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0040eb20
add esp, 0x18
test bl, bl
je 0x405fe4
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
call fcn.0040eb20
add esp, 0x18
jmp 0x405fe4
cmp byte [esi + 0x1e], 5
mov dword [esp + 0x28], eax
jne 0x405fe4
movzx edx, word [esi + 0x1c]
shl edx, 0x10
or dword [esp + 0x28], edx
cmp byte [esp + 0x13], 0
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x12c]
mov edi, dword [esp + 0x1c]
mov eax, 0x68
mov word [ebp + 4], ax
je 0x406056
test bl, bl
je 0x406180
cmp byte [edi + 8], 0
je 0x406056
mov edi, dword [esp + 0x128]
mov esi, dword [esp + 0x124]
push 0xffc3d44e
push 0
push 0
push edi
push esi
push 1
call fcn.0040eb20
push 0xffc3d44d
push 0
push 0
push edi
push esi
push 2
call fcn.0040eb20
mov ecx, dword [esp + 0x58]
push 0
push SysReAllocString
push ecx
push ebp
push edi
jmp 0x404ffc
test bl, bl
je 0x406180
cmp byte [edi + 4], 0
je 0x406096
cmp byte [edi + 0x10], 0
mov edx, dword [esp + 0x28]
je 0x40608c
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x124]
push 0
push SysReAllocString
push edx
push ebp
push eax
push ecx
jmp 0x405099
push 1
push edx
push ebp
push ebx
jmp 0x405578
cmp byte [esp + 0x12], 0
jne 0x4060aa
mov eax, dword [esp + 0x34]
test byte [eax], 1
je 0x406238
mov esi, dword [esp + 0x114]
cmp esi, dword [0x4c1fdc]
jne 0x4060e6
mov ecx, dword [esp + 0x28]
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 0x406298
mov eax, dword [edi]
test eax, eax
je 0x4060f5
cmp dword [eax], 7
je 0x4060f5
mov al, 1
jmp 0x4060f7
xor al, al
cmp byte [edi + 0x10], 0
je 0x406158
cmp byte [esp + 0x33], 0
jne 0x406158
test al, al
jne 0x40615c
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x124]
push 0xffc3d44d
push 0
push 0
push ecx
push edx
push 0
call fcn.0040eb20
add esp, 0x18
mov eax, dword [esp + 0x28]
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 0x406298
test al, al
je 0x40612b
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x124]
push 0
push SysReAllocString
push eax
push ebp
push ecx
push edx
mov ecx, esi
jmp 0x4050a0
mov eax, dword [0x4c0dc0]
mov byte [edi + 0xf], 1
test eax, eax
je 0x406197
cmp byte [eax + 4], 0
je 0x406197
mov byte [eax + 0x11], 2
cmp byte [esp + 0x12], 0
je 0x4061d9
mov eax, dword [esp + 0x34]
or byte [eax], 8
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0x118]
push 0
push eax
mov eax, dword [esp + 0x11c]
push ebp
push ebx
push ecx
mov cl, byte [esp + 0x138]
push edx
push eax
mov eax, dword [esp + 0x144]
jmp 0x406298
mov eax, dword [esp + 0x124]
cmp al, 0xa4
je 0x4061e8
cmp al, 0xa5
jne 0x406238
mov cl, byte [0x4c1ea5]
test cl, 0xc0
je 0x40621c
test cl, 0x33
jne 0x40621c
movzx ecx, byte [0x4be375]
push 0xffc3d44d
push 0
push 0
push 0
push ecx
push 2
call fcn.0040eb20
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.0040eb20
add esp, 0x18
test bl, bl
jne 0x406240
mov byte [edi + 0x10], 1
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x124]
push 0
push SysReAllocString
push eax
push ebp
push ecx
push edx
jmp 0x405099
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.004064e0
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret