Function at 0x4e5604
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb0
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x50], edx
mov esi, eax
lea eax, [ebp - 8]
mov edx, dword [0x4e0750]
call fcn.00403e38
xor eax, eax
push ebp
push 0x4e6b73
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.004e0984
mov edi, eax
mov eax, esi
cmp eax, 0x284
jg 0x4e58d9
je 0x4e5f77
cmp eax, 0x104
jg 0x4e57ae
je 0x4e5d97
cmp eax, 0xb4
jg 0x4e56f5
je 0x4e5ccb
cmp eax, 0x7b
jg 0x4e56ba
je 0x4e5bc3
cmp eax, 0x78
jg 0x4e56a5
je 0x4e5b5b
sub eax, 0x64
je 0x4e5b0e
sub eax, 5
je 0x4e5b51
jmp case.default.0x4e5adf
sub eax, 0x79
je 0x4e5b65
dec eax
je 0x4e5ba6
jmp case.default.0x4e5adf
cmp eax, 0x8c
jg 0x4e56dc
je case.0x4e5adf.1427
sub eax, 0x7c
je 0x4e5b8f
dec eax
je 0x4e5bd2
jmp case.default.0x4e5adf
sub eax, 0xa0
je case.0x4e5adf.1427
sub eax, 0xa
je case.0x4e5adf.1429
jmp case.default.0x4e5adf
add eax, 0xffffff38
cmp eax, 0x28
ja case.default.0x4e5adf
jmp dword [eax*4 + 0x4e570a]
cmp eax, 0x15d
jg 0x4e584e
je 0x4e5eb5
cmp eax, 0x140
jg 0x4e5811
je 0x4e5e16
cmp eax, 0x122
jge 0x4e57ec
sub eax, 0x109
je 0x4e5da1
sub eax, 0xf
je 0x4e5dab
jmp case.default.0x4e5adf
add eax, 0xfffffede
sub eax, 2
jb 0x4e5dc1
sub eax, 8
je 0x4e5e02
sub eax, 5
je case.0x4e5adf.1424
jmp case.default.0x4e5adf
cmp eax, 0x157
jg 0x4e5837
je 0x4e5e72
sub eax, 0x145
je case.0x4e5adf.1424
sub eax, 0xf
je 0x4e5e4d
jmp case.default.0x4e5adf
sub eax, 0x159
je 0x4e5e91
dec eax
je 0x4e5ea2
jmp case.default.0x4e5adf
cmp eax, 0x258
jg 0x4e589c
je 0x4e5f1e
add eax, 0xfffffea2
cmp eax, 0xa
ja case.default.0x4e5adf
jmp dword [eax*4 + 0x4e5870]
cmp eax, 0x281
jg 0x4e58c2
je 0x4e5f47
sub eax, 0x26c
je 0x4e5f2a
sub eax, 0x14
je 0x4e5f36
jmp case.default.0x4e5adf
sub eax, 0x282
je 0x4e5f56
dec eax
je 0x4e5f60
jmp case.default.0x4e5adf
cmp eax, 0x37a
jg 0x4e5a30
je 0x4e6469
cmp eax, 0x339
jg 0x4e5987
je 0x4e6194
cmp eax, 0x32b
jg 0x4e594a
je 0x4e60ee
cmp eax, 0x294
jg 0x4e592e
je 0x4e6060
add eax, 0xfffffd7b
sub eax, 2
jb 0x4e5f86
je 0x4e5fad
jmp case.default.0x4e5adf
add eax, 0xfffffd44
sub eax, 7
jb 0x4e60c2
sub eax, 0x5d
je 0x4e60d0
jmp case.default.0x4e5adf
add eax, 0xfffffcd3
cmp eax, 9
ja case.default.0x4e5adf
jmp dword [eax*4 + 0x4e595f]
cmp eax, 0x35c
jg 0x4e59d3
je 0x4e6390
cmp eax, 0x348
jg 0x4e59ba
je 0x4e62b9
sub eax, 0x33c
je 0x4e6272
sub eax, 3
je 0x4e62ad
jmp case.default.0x4e5adf
sub eax, 0x34d
je 0x4e62f1
sub eax, 5
je 0x4e6384
jmp case.default.0x4e5adf
add eax, 0xfffffca1
cmp eax, 0x11
ja case.default.0x4e5adf
jmp dword [eax*4 + 0x4e59e8]
cmp eax, 0x58c
jg 0x4e5ad1
je 0x4e6a58
cmp eax, 0x520
jg 0x4e5a90
je 0x4e66ed
cmp eax, 0x4ec
jg 0x4e5a77
je 0x4e64c9
add eax, 0xfffffc18
sub eax, 0x64
jb 0x4e648d
sub eax, 0x64
je 0x4e64ba
jmp case.default.0x4e5adf
sub eax, 0x4f6
je 0x4e661c
sub eax, 0x29
je 0x4e662b
jmp case.default.0x4e5adf
cmp eax, 0x523
jge 0x4e5aae
sub eax, 0x521
je 0x4e674e
dec eax
je 0x4e67b5
jmp case.default.0x4e5adf
add eax, 0xfffffadd
sub eax, 2
jb 0x4e686c
sub eax, 0x53
je 0x4e6943
dec eax
je 0x4e69a4
jmp case.default.0x4e5adf
add eax, 0xfffffa73
cmp eax, 9
ja case.default.0x4e5adf
jmp dword [eax*4 + 0x4e5ae6]
mov eax, dword [0x66e8a8]
test byte [eax + 7], 2
je 0x4e5b23
call fcn.004e3404
jmp case.default.0x4e5adf
push 0
call fcn.0053955c
mov ecx, dword [0x66f264]
mov ecx, dword [ecx + 4]
xor edx, edx
call fcn.005384f8
test al, al
je case.default.0x4e5adf
mov eax, 0x7d0
call fcn.004ab0f8
jmp case.default.0x4e5adf
call fcn.004e3404
jmp case.default.0x4e5adf
call fcn.004e3448
jmp case.default.0x4e5adf
mov al, byte [edi + 0x3f6]
xor al, 1
mov byte [edi + 0x3f6], al
mov eax, edi
call fcn.005b9b70
mov eax, edi
call fcn.00506a5c
mov eax, dword [0x66f364]
mov byte [eax + 0xf], 1
jmp case.default.0x4e5adf
lea edx, [ebp - 0x18]
mov eax, edi
call fcn.00565534
mov eax, dword [ebp - 0x18]
call fcn.00621574
jmp case.default.0x4e5adf
mov eax, dword [0x66ee70]
mov eax, dword [eax]
call fcn.006219e4
mov eax, dword [0x66ee70]
mov eax, dword [eax]
call fcn.00621554
jmp case.default.0x4e5adf
mov eax, dword [0x66ebf8]
call fcn.00478c70
jmp case.default.0x4e5adf
call fcn.004e351c
jmp case.default.0x4e5adf
cmp esi, 0xa0
je 0x4e5bff
cmp esi, 0x593
je 0x4e5bff
mov eax, dword [edi + 0x174]
call fcn.0063c22c
test al, al
je case.default.0x4e5adf
cmp esi, 0x8c
jne 0x4e5c23
call fcn.0053955c
xor ecx, ecx
mov edx, edi
call fcn.00538bf0
mov eax, 0x7f8
call fcn.004ab0f8
mov bl, 1
jmp 0x4e5c44
cmp esi, 0xa0
jne 0x4e5c36
xor eax, eax
call fcn.004e35b0
mov ebx, eax
jmp 0x4e5c44
mov eax, dword [0x66f1e0]
mov eax, dword [eax]
call fcn.004e35b0
mov ebx, eax
test bl, bl
je case.default.0x4e5adf
mov eax, dword [0x67008c]
cmp dword [eax], 0
je case.default.0x4e5adf
mov eax, dword [0x66e960]
mov eax, dword [eax]
cmp dword [eax + 0x18], 0
jne case.default.0x4e5adf
mov ax, word [0x4e6b84]
push eax
lea edx, [ebp - 0x1c]
mov eax, dword [0x67008c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
call fcn.006552dc
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
call fcn.006551b8
mov edx, dword [ebp - 0x18]
mov eax, dword [0x67013c]
mov eax, dword [eax]
mov cl, 3
call fcn.0061fe54
cmp ax, 6
jne case.default.0x4e5adf
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edx, 0x523
call fcn.004f3be0
jmp case.default.0x4e5adf
mov eax, esi
call fcn.004e3688
jmp case.default.0x4e5adf
mov eax, edi
call fcn.00599430
test al, al
jne case.default.0x4e5adf
mov eax, 0x80c
call fcn.004ab0f8
jmp case.default.0x4e5adf
mov cl, 1
mov edx, dword [edi + 0x160]
mov eax, edi
call fcn.00599898
test al, al
jne case.default.0x4e5adf
mov eax, 0x80c
call fcn.004ab0f8
jmp case.default.0x4e5adf
mov eax, esi
call fcn.004e3888
jmp case.default.0x4e5adf
mov eax, edi
call fcn.0059a0ac
test al, al
jne case.default.0x4e5adf
mov eax, 0x80c
call fcn.004ab0f8
jmp case.default.0x4e5adf
mov eax, edi
call fcn.0059a2f4
test al, al
jne case.default.0x4e5adf
mov eax, 0x80c
call fcn.004ab0f8
jmp case.default.0x4e5adf
call fcn.004e37c8
jmp case.default.0x4e5adf
mov eax, edi
call fcn.004b13cc
jmp case.default.0x4e5adf
mov eax, edi
call fcn.004cefa0
jmp case.default.0x4e5adf
call fcn.004d2dac
jmp case.default.0x4e5adf
call fcn.004e39c4
jmp case.default.0x4e5adf
call fcn.004e3be8
jmp case.default.0x4e5adf
call fcn.004e3c68
jmp case.default.0x4e5adf
call fcn.004e3e38
jmp case.default.0x4e5adf
mov eax, 0x820
call fcn.004ab0f8
mov eax, edi
call fcn.004494e4
jmp case.default.0x4e5adf
cmp byte [edi + 0x14d], 0
jne 0x4e5de3
cmp dword [edi + 0x81c], 0
je 0x4e5de3
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edx, 0x1c20
call fcn.004f3be0
mov dl, byte [edi + 0x14d]
xor dl, 1
mov eax, edi
call fcn.00562010
mov eax, 0x834
call fcn.004ab0f8
jmp case.default.0x4e5adf
mov eax, 0x848
call fcn.004ab0f8
call fcn.004e3f28
jmp case.default.0x4e5adf
mov eax, 0x848
call fcn.004ab0f8
call fcn.0053955c
mov edx, dword [0x66e960]
mov edx, dword [edx]
call fcn.005391d0
jmp case.default.0x4e5adf
mov eax, 0x848
call fcn.004ab0f8
mov eax, esi
call fcn.004e3a7c
jmp case.default.0x4e5adf
mov eax, dword [0x66fe80]
mov eax, dword [eax]
call fcn.00618a58
test al, al
je case.default.0x4e5adf
or dword [0x672e70], 0x40
call fcn.00506b9c
jmp case.default.0x4e5adf
mov eax, dword [0x66fe80]
mov eax, dword [eax]
xor edx, edx
call fcn.00618a0c
or dword [0x672e70], 0x40
call fcn.00506b9c
jmp case.default.0x4e5adf
mov eax, dword [0x66f7b4]
mov eax, dword [eax]
call fcn.00618a58
jmp case.default.0x4e5adf
mov eax, dword [0x66f7b4]
mov eax, dword [eax]
xor edx, edx
call fcn.00618a0c
jmp case.default.0x4e5adf
mov eax, dword [0x66f30c]
mov eax, dword [eax]
call fcn.00618a58
jmp case.default.0x4e5adf
mov eax, dword [0x66f30c]
mov eax, dword [eax]
xor edx, edx
call fcn.00618a0c
jmp case.default.0x4e5adf
mov eax, dword [0x66fc00]
mov eax, dword [eax]
call fcn.00618a58
jmp case.default.0x4e5adf
mov eax, dword [0x66fc00]
mov eax, dword [eax]
xor edx, edx
call fcn.00618a0c
jmp case.default.0x4e5adf
call fcn.00536b48
mov eax, dword [eax + 0x34]
call fcn.0064ecc8
jmp case.default.0x4e5adf
call fcn.00506a54
call fcn.005069d4
jmp case.default.0x4e5adf
mov eax, edi
call fcn.005c6538
jmp case.default.0x4e5adf
xor eax, eax
call fcn.0046f6dc
jmp case.default.0x4e5adf
mov eax, dword [0x66ef54]
mov al, byte [eax]
call fcn.004ba044
jmp case.default.0x4e5adf
mov eax, dword [0x4bea04]
call fcn.00622d60
jmp case.default.0x4e5adf
call fcn.00465d9c
jmp case.default.0x4e5adf
mov eax, dword [0x66f264]
add eax, 4
call fcn.004b5b68
call fcn.00506ba4
jmp case.default.0x4e5adf
mov eax, dword [0x4d382c]
call fcn.00622d60
jmp case.default.0x4e5adf
xor ecx, ecx
mov dl, 1
mov eax, dword [0x469438]
call fcn.0046a628
mov edx, dword [0x66ff88]
mov dword [edx], eax
mov eax, dword [0x66ff88]
mov eax, dword [eax]
call fcn.0063c334
jmp case.default.0x4e5adf
xor ecx, ecx
mov dl, 1
mov eax, dword [0x4de678]
call fcn.00622d20
mov ebx, eax
mov edx, 0x38e28
mov eax, ebx
call fcn.00622d84
mov eax, ebx
call fcn.0063c388
cmp eax, 6
jne 0x4e6054
call fcn.0061d944
lea eax, [ebp - 0x20]
push eax
mov eax, dword [0x66f95c]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x38], eax
mov byte [ebp - 0x34], 0xb
mov eax, dword [0x66f95c]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x30], eax
mov byte [ebp - 0x2c], 0xb
lea ecx, [ebp - 0x18]
mov edx, 0x4e6b90
mov al, 0xa
call fcn.0061c8c4
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x3c]
call fcn.00654c3c
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x28], eax
mov byte [ebp - 0x24], 0xb
lea edx, [ebp - 0x38]
mov eax, 0x4e6ba0
mov ecx, 2
call fcn.00655a28
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x18]
call fcn.00654c74
mov edx, dword [ebp - 0x18]
mov eax, dword [0x66fbec]
call fcn.004038bc
call fcn.00506a54
call fcn.005069d4
mov eax, ebx
call fcn.004028c0
jmp case.default.0x4e5adf
mov eax, dword [0x66e7e0]
cmp byte [eax], 0
je 0x4e60b3
mov eax, dword [0x66f99c]
cmp byte [eax], 0
je 0x4e60b3
call fcn.0061d7d0
test al, al
jne 0x4e60b3
mov eax, dword [0x670118]
mov eax, dword [eax]
mov cx, word [0x4e6b84]
mov dl, 3
call fcn.0061fbb0
cmp ax, 6
jne case.default.0x4e5adf
mov eax, dword [0x66efb0]
mov byte [eax], 1
call fcn.00506a54
call fcn.005069d4
jmp case.default.0x4e5adf
mov eax, dword [0x4d51ec]
call fcn.00622d60
jmp case.default.0x4e5adf
push ebp
mov eax, esi
call fcn.004e3fc8
pop ecx
jmp case.default.0x4e5adf
mov dl, 1
mov eax, edi
call fcn.005e270c
push 0
call fcn.0052fdcc
xor ecx, ecx
mov edx, edi
call fcn.0052cc2c
jmp case.default.0x4e5adf
call fcn.0052fdcc
lea ebx, [eax + 0x18]
mov eax, dword [ebx + 0x44]
call fcn.0051ff6c
mov edx, dword [ebx + 0x44]
mov eax, dword [0x670034]
mov eax, dword [eax]
call fcn.0064e9dc
mov al, 1
call fcn.0051ff9c
jmp case.default.0x4e5adf
call fcn.004e435c
jmp case.default.0x4e5adf
call fcn.0052fdcc
mov ebx, eax
mov eax, dword [ebx + 0x50]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x824]
mov edx, dword [eax]
call dword [edx + 0x34]
mov eax, ebx
call fcn.00529b98
mov eax, edi
call fcn.005e25f0
jmp case.default.0x4e5adf
mov eax, esi
call fcn.004e4384
jmp case.default.0x4e5adf
call fcn.0052fdcc
lea ebx, [eax + 0x18]
mov esi, dword [ebx + 0x44]
mov eax, esi
call fcn.0065378c
mov edx, eax
lea ecx, [ebp - 0x18]
mov eax, dword [ebx + 0x3c]
call fcn.00654b60
mov edx, dword [ebp - 0x18]
mov eax, esi
call fcn.0047fcf4
jmp case.default.0x4e5adf
push ebp
call fcn.004e4478
pop ecx
jmp case.default.0x4e5adf
mov eax, dword [0x66e8a8]
test byte [eax + 0xa9], 0x80
je 0x4e61dd
mov eax, dword [0x66ebb0]
test byte [eax + 1], 0x10
je 0x4e61dd
mov eax, dword [0x66f4a8]
mov eax, dword [eax]
mov cl, 0x21
mov dl, 3
call fcn.006200d0
cmp ax, 6
jne 0x4e6b32
mov eax, dword [0x66ebb0]
and dword [eax], 0xffffefff
mov eax, dword [0x66ebb0]
or dword [eax], 0x2000
mov eax, dword [0x66e8a8]
test byte [eax + 0xa9], 0x80
je 0x4e61fb
mov eax, dword [0x66e8a8]
and word [eax + 0xa9], 0xff7f
jmp 0x4e6209
mov eax, dword [0x66e8a8]
or word [eax + 0xa9], 0x80
call fcn.0052fdcc
call fcn.00529b98
call fcn.0053a704
mov eax, dword [0x66e8a8]
test byte [eax + 0xa9], 0x80
je 0x4e6268
mov eax, dword [0x66ebb0]
test byte [eax + 1], 0x10
jne 0x4e6268
mov eax, dword [0x66ebb0]
test byte [eax + 1], 0x20
je 0x4e6268
mov eax, dword [0x670330]
mov eax, dword [eax]
mov cl, 0x22
mov dl, 3
call fcn.006200d0
cmp ax, 6
jne 0x4e6268
mov eax, dword [0x66ebb0]
or dword [eax], 0x1000
mov eax, dword [0x66ebb0]
and dword [eax], 0xffffdfff
call fcn.00506b9c
jmp case.default.0x4e5adf
mov eax, dword [0x66e8a8]
test byte [eax + 0xaa], 1
je 0x4e6290
mov eax, dword [0x66e8a8]
and word [eax + 0xa9], 0xfeff
jmp 0x4e629e
mov eax, dword [0x66e8a8]
or word [eax + 0xa9], 0x100
call fcn.0053a704
call fcn.00506b9c
jmp case.default.0x4e5adf
mov al, 5
call fcn.004ba044
jmp case.default.0x4e5adf
call fcn.0052fdcc
lea edx, [eax + 0x18]
mov eax, edx
mov ecx, dword [eax]
push ecx
mov ebx, dword [eax + 4]
add ebx, dword [edx + 0x10]
push ebx
mov dl, byte [0x4e6b84]
push edx
mov edx, ecx
mov ecx, dword [eax + 4]
mov eax, edi
call fcn.005c2d68
mov eax, dword [ebp + 8]
push eax
xor eax, eax
call fcn.004e323c
pop ecx
jmp case.default.0x4e5adf
mov eax, dword [0x66f364]
cmp byte [eax + 0x17], 0
jne case.default.0x4e5adf
mov eax, dword [0x66f8a4]
mov eax, dword [eax]
cmp byte [eax + 0x24], 0
je 0x4e635b
push 0x12
call sub.user32.dll_GetKeyState
movsx ebx, ax
mov esi, ebx
and esi, 0x80
test esi, esi
je 0x4e6330
push 0
push 2
push 0
push 0x12
call sub.user32.dll_keybd_event
push 0
push 0
push 0
push 0x12
call sub.user32.dll_keybd_event
push 0
push 2
push 0
push 0x12
call sub.user32.dll_keybd_event
test esi, esi
je 0x4e635b
push 0
push 0
push 0
push 0x12
call sub.user32.dll_keybd_event
mov eax, dword [0x66f364]
mov byte [eax + 0x17], 1
call fcn.00465e68
call fcn.00465f28
call fcn.00465e68
mov edx, 0x669140
xor ecx, ecx
call fcn.00465ef8
jmp case.default.0x4e5adf
mov eax, edi
call fcn.005e21c8
jmp case.default.0x4e5adf
xor edx, edx
mov eax, dword [edi + 0x3a4]
call fcn.0047fcf4
jmp case.default.0x4e5adf
push ebp
call fcn.004e4518
pop ecx
jmp case.default.0x4e5adf
push ebp
call fcn.004e4740
pop ecx
jmp case.default.0x4e5adf
mov eax, dword [edi + 0x1f0]
mov dword [ebp - 0x14], eax
mov eax, dword [edi + 0x1f4]
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 0x1f8]
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 0x3a4]
cmp eax, 0x80000000
jne 0x4e63f5
mov ecx, dword [edi + 0x25c]
mov edx, dword [edi + 0x258]
mov eax, edi
call fcn.005c5464
lea edx, [ebp - 0x14]
xchg edx, eax
call fcn.0048b54c
sub al, 1
jb 0x4e640b
dec al
je 0x4e641c
jmp case.default.0x4e5adf
lea ecx, [ebp - 0x14]
mov dl, 0x31
mov eax, edi
call fcn.005cc628
jmp case.default.0x4e5adf
lea edx, [ebp - 0x14]
mov eax, edi
call fcn.005d2b58
jmp case.default.0x4e5adf
mov eax, dword [edi + 0x1f0]
mov dword [ebp - 0x14], eax
mov eax, dword [edi + 0x1f4]
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 0x1f8]
mov dword [ebp - 0xc], eax
mov al, byte [ebp - 0x14]
xor al, 1
mov byte [ebp - 0x14], al
lea ecx, [ebp - 0x14]
mov dl, 0x31
mov eax, edi
call fcn.005cc628
jmp case.default.0x4e5adf
call fcn.004e498c
jmp case.default.0x4e5adf
call fcn.0047a6cc
mov eax, dword [0x66eb54]
mov eax, dword [eax]
mov dl, 1
call fcn.00622efc
mov eax, dword [0x66eb54]
mov eax, dword [eax]
call fcn.006437c0
jmp case.default.0x4e5adf
push 0
call fcn.0053955c
mov ecx, esi
sub ecx, 0x3e8
xor edx, edx
call fcn.005384f8
test al, al
je case.default.0x4e5adf
mov eax, 0x7d0
call fcn.004ab0f8
jmp case.default.0x4e5adf
mov eax, dword [0x488214]
call fcn.00622d60
jmp case.default.0x4e5adf
mov eax, dword [0x67008c]
cmp dword [eax], 0
je 0x4e65b3
lea eax, [ebp - 0x20]
push eax
lea edx, [ebp - 0x1c]
mov eax, dword [0x67008c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
call fcn.006552dc
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
call fcn.006551b8
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x3c]
call fcn.00654c3c
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x48], 0xb
lea edx, [ebp - 0x50]
mov eax, dword [edi + 0x160]
call fcn.00654c3c
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], 0xb
lea edx, [ebp - 0x4c]
mov eax, dword [0x66fb60]
mov eax, dword [eax]
mov ecx, 1
call fcn.00655a28
mov eax, dword [ebp - 0x20]
mov cx, word [0x4e6bb0]
mov dl, 3
call fcn.0061fbb0
sub ax, 6
je 0x4e655a
dec ax
je 0x4e656f
jmp 0x4e6b32
lea eax, [ebp - 8]
mov edx, dword [0x67008c]
mov edx, dword [edx]
mov edx, dword [edx + 4]
call fcn.004038bc
jmp 0x4e65c1
cmp byte [edi + 0x45c], 0
je 0x4e6589
mov eax, dword [0x6700c0]
mov eax, dword [eax]
call fcn.0061feb4
jmp 0x4e6b32
cmp byte [edi + 0x427], 0
je 0x4e65a3
mov eax, dword [0x66f0ac]
mov eax, dword [eax]
call fcn.0061feb4
jmp 0x4e6b32
lea eax, [ebp - 8]
mov edx, dword [edi + 0x160]
call fcn.004038bc
jmp 0x4e65c1
lea eax, [ebp - 8]
mov edx, dword [edi + 0x160]
call fcn.004038bc
call fcn.004d20c8
mov ebx, eax
cmp dword [ebx + 0x24], 1
jne 0x4e65e3
lea ecx, [ebp - 8]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edx, 0x30f98
call fcn.004f4c54
jmp 0x4e6610
call fcn.004d1c94
test al, al
je 0x4e6610
lea eax, [ebp - 4]
mov edx, dword [0x66e8a8]
mov edx, dword [edx + 0x1e]
call fcn.004038bc
lea ecx, [ebp - 8]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edx, 0x30f98
call fcn.004f4c54
mov eax, ebx
call fcn.004028c0
jmp case.default.0x4e5adf
mov eax, dword [0x4d1e9c]
call fcn.00622d60
jmp case.default.0x4e5adf
lea edx, [ebp - 0x18]
mov eax, dword [0x66fce8]
mov eax, dword [eax]
call fcn.00654d58
mov eax, dword [ebp - 0x18]
push eax
call fcn.00506a54
mov eax, dword [eax + 0x1b4]
add eax, 0x38
mov edx, dword [0x66fc80]
mov edx, dword [edx]
mov edx, dword [edx + 0x18]
mov edx, dword [edx + 8]
pop ecx
call fcn.00403b14
call fcn.00506a54
mov eax, dword [eax + 0x1b4]
mov byte [eax + 0x56], 2
call fcn.00506a54
mov eax, dword [eax + 0x1b4]
mov edx, dword [eax]
call dword [edx + 0x1c]
test al, al
je case.default.0x4e5adf
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edx, 0x523
call fcn.004f3be0
mov eax, dword [0x67008c]
cmp dword [eax], 0
jne case.default.0x4e5adf
mov dl, 1
mov eax, dword [0x536e68]
call fcn.00402898
mov edx, dword [0x67008c]
mov dword [edx], eax
call fcn.00506a54
mov eax, dword [eax + 0x1b4]
lea edx, [ebp - 0x18]
call fcn.00630690
mov edx, dword [ebp - 0x18]
mov eax, dword [0x67008c]
mov eax, dword [eax]
add eax, 4
call fcn.004038bc
call fcn.00506a54
call fcn.00504044
jmp case.default.0x4e5adf
call fcn.00506a54
mov eax, dword [eax + 0x1b0]
add eax, 0x38
call fcn.00403880
call fcn.00506a54
mov eax, dword [eax + 0x1b0]
mov byte [eax + 0x56], 1
call fcn.00506a54
mov eax, dword [eax + 0x1b0]
mov edx, dword [eax]
call dword [edx + 0x1c]
test al, al
je case.default.0x4e5adf
call fcn.00506a54
mov eax, dword [eax + 0x1b0]
lea edx, [ebp - 0x18]
call fcn.00630690
mov eax, dword [ebp - 0x18]
push eax
call fcn.0053955c
pop edx
call fcn.0053768c
jmp case.default.0x4e5adf
mov eax, dword [0x66e960]
mov eax, dword [eax]
mov edi, dword [eax + 0x18]
dec edi
test edi, edi
jl 0x4e679a
inc edi
xor esi, esi
mov eax, dword [0x66e960]
mov eax, dword [eax]
mov eax, dword [eax + 0x1c]
mov ebx, dword [eax + esi*4]
mov eax, ebx
call fcn.00565560
test al, al
je 0x4e6796
cmp byte [ebx + 0x45c], 0
jne 0x4e6796
mov eax, ebx
call fcn.00599430
test al, al
je 0x4e6796
call fcn.00506b9c
jmp 0x4e6b32
inc esi
dec edi
jne 0x4e6760
mov eax, dword [0x67008c]
mov eax, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [0x67008c]
mov eax, dword [eax]
call fcn.00536fd4
jmp case.default.0x4e5adf
call fcn.00506a54
mov eax, dword [eax + 0x1b4]
add eax, 0x38
mov edx, dword [0x67008c]
mov edx, dword [edx]
mov edx, dword [edx + 4]
call fcn.004038bc
call fcn.00506a54
mov eax, dword [eax + 0x1b4]
mov byte [eax + 0x56], 2
call fcn.00506a54
mov eax, dword [eax + 0x1b4]
mov edx, dword [eax]
call dword [edx + 0x1c]
test al, al
je case.default.0x4e5adf
call fcn.00506a54
mov eax, dword [eax + 0x1b4]
lea edx, [ebp - 0x18]
call fcn.00630690
mov eax, dword [ebp - 0x18]
mov edx, dword [0x67008c]
mov edx, dword [edx]
mov edx, dword [edx + 4]
call fcn.00655078
test al, al
jne case.default.0x4e5adf
call fcn.00506a54
mov eax, dword [eax + 0x1b4]
lea edx, [ebp - 0x18]
call fcn.00630690
mov edx, dword [ebp - 0x18]
mov eax, dword [0x67008c]
mov eax, dword [eax]
add eax, 4
call fcn.004038bc
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edx, 0x521
call fcn.004f3be0
call fcn.00506a54
call fcn.00504044
jmp case.default.0x4e5adf
mov ax, word [0x4e6bb0]
push eax
lea edx, [ebp - 0x1c]
mov eax, dword [0x67008c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
call fcn.006552dc
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
call fcn.006551b8
mov edx, dword [ebp - 0x18]
mov eax, dword [0x66f020]
mov eax, dword [eax]
mov cl, 3
call fcn.0061fe54
sub ax, 2
je 0x4e6b32
sub ax, 4
jne 0x4e68dc
call fcn.004e37c8
test al, al
je 0x4e6b32
mov eax, dword [0x67008c]
mov eax, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [0x67008c]
mov eax, dword [eax]
call fcn.00536fd4
test al, al
je 0x4e6b32
mov eax, dword [0x67008c]
call fcn.00652f6c
cmp esi, 0x523
jne 0x4e6934
mov eax, dword [0x66e960]
mov eax, dword [eax]
mov esi, dword [eax + 0x18]
dec esi
cmp esi, 0
jl 0x4e6934
mov eax, dword [0x66e960]
mov eax, dword [eax]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + esi*4]
cmp byte [eax + 0x45c], 0
jne 0x4e692e
call fcn.0053955c
mov edx, dword [0x66e960]
mov edx, dword [edx]
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + esi*4]
mov cl, 1
call fcn.00538bf0
dec esi
cmp esi, 0xffffffff
jne 0x4e68fe
call fcn.00506a54
call fcn.00504044
jmp case.default.0x4e5adf
xor eax, eax
mov dword [edi + 0x8fc], eax
mov dword [edi + 0x900], eax
xor eax, eax
mov dword [edi + 0x904], eax
xor eax, eax
mov dword [edi + 0x908], eax
mov eax, dword [0x66f55c]
mov eax, dword [eax]
mov edx, dword [edi + 0x160]
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov esi, eax
cmp esi, 0xffffffff
je case.default.0x4e5adf
mov eax, dword [0x66f55c]
mov eax, dword [eax]
mov edx, esi
mov ecx, dword [eax]
call dword [ecx + 0x18]
call fcn.00401fac
mov eax, dword [0x66f55c]
mov eax, dword [eax]
mov edx, esi
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp case.default.0x4e5adf
mov eax, dword [0x66e960]
mov eax, dword [eax]
mov esi, dword [eax + 0x18]
dec esi
cmp esi, 0
jl 0x4e69e5
mov eax, dword [0x66e960]
mov eax, dword [eax]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + esi*4]
xor edx, edx
mov dword [eax + 0x8fc], edx
mov dword [eax + 0x900], edx
xor edx, edx
mov dword [eax + 0x904], edx
xor edx, edx
mov dword [eax + 0x908], edx
dec esi
cmp esi, 0xffffffff
jne 0x4e69b4
call fcn.00536b48
call fcn.00535c0c
test al, al
je 0x4e6a1e
call fcn.00536b48
call fcn.005355d0
mov eax, dword [eax + 8]
xor edx, edx
mov dword [eax + 0x8fc], edx
mov dword [eax + 0x900], edx
xor edx, edx
mov dword [eax + 0x904], edx
xor edx, edx
mov dword [eax + 0x908], edx
mov eax, dword [0x66f55c]
mov eax, dword [eax]
mov esi, dword [eax + 0x24]
dec esi
cmp esi, 0
jl 0x4e6a47
mov eax, dword [0x66f55c]
mov eax, dword [eax]
mov edx, esi
mov ecx, dword [eax]
call dword [ecx + 0x18]
call fcn.00401fac
dec esi
cmp esi, 0xffffffff
jne 0x4e6a2e
mov eax, dword [0x66f55c]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x34]
jmp case.default.0x4e5adf
mov edx, dword [0x66e960]
mov edx, dword [edx]
mov eax, dword [0x66f1e0]
mov eax, dword [eax]
call fcn.0064e950
mov eax, dword [0x66f364]
mov byte [eax + 0xf], 1
jmp case.default.0x4e5adf
mov eax, dword [0x66f1e0]
mov eax, dword [eax]
call fcn.0064e930
mov eax, dword [0x66f364]
mov byte [eax + 0xf], 1
jmp case.default.0x4e5adf
mov eax, 0x848
call fcn.004ab0f8
call fcn.0053955c
mov edx, dword [0x66f1e0]
mov edx, dword [edx]
call fcn.005391d0
jmp case.default.0x4e5adf
call fcn.004e4cfc
jmp case.default.0x4e5adf
call fcn.004e4f50
jmp case.default.0x4e5adf
call fcn.004e53b0
jmp case.default.0x4e5adf
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edx, 0x596
call fcn.004e0b84
cmp al, 1
setne bl
mov eax, dword [0x66f1e0]
mov eax, dword [eax]
mov esi, dword [eax + 0x18]
dec esi
cmp esi, 0
jl 0x4e6b24
mov eax, dword [0x66f1e0]
mov eax, dword [eax]
mov eax, dword [eax + 0x1c]
mov edi, dword [eax + esi*4]
cmp byte [edi + 0x45c], 0
jne 0x4e6b1e
cmp bl, byte [edi + 0x3f6]
je 0x4e6b1e
mov byte [edi + 0x3f6], bl
mov eax, edi
call fcn.005b9b70
mov eax, edi
call fcn.00506a5c
dec esi
cmp esi, 0xffffffff
jne 0x4e6aec
mov eax, dword [0x66f364]
mov byte [eax + 0xf], 1
call fcn.00506b9c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4e6b7a
lea eax, [ebp - 0x50]
call fcn.00403274
lea eax, [ebp - 0x3c]
call fcn.00403274
lea eax, [ebp - 0x20]
call fcn.00403274
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.00403898
lea eax, [ebp - 8]
mov edx, dword [0x4e0750]
call fcn.00403f00
ret