Function at 0x4dab24
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 [0x4d4130]
call fcn.00403e48
xor eax, eax
push ebp
push 0x4dc041
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.004d4364
mov edi, eax
mov eax, esi
cmp eax, 0x283
jg 0x4dade3
je 0x4db469
cmp eax, 0x104
jg 0x4dacce
je 0x4db2a0
cmp eax, 0xb4
jg 0x4dac15
je 0x4db1d4
cmp eax, 0x7b
jg 0x4dabda
je 0x4db0ce
cmp eax, 0x78
jg 0x4dabc5
je 0x4db066
sub eax, 0x64
je 0x4db019
sub eax, 5
je 0x4db05c
jmp case.default.0x4dafea
sub eax, 0x79
je 0x4db070
dec eax
je 0x4db0b1
jmp case.default.0x4dafea
cmp eax, 0x8c
jg 0x4dabfc
je case.0x4dafea.1427
sub eax, 0x7c
je 0x4db09a
dec eax
je 0x4db0dd
jmp case.default.0x4dafea
sub eax, 0xa0
je case.0x4dafea.1427
sub eax, 0xa
je case.0x4dafea.1429
jmp case.default.0x4dafea
add eax, 0xffffff38
cmp eax, 0x28
ja case.default.0x4dafea
jmp dword [eax*4 + 0x4dac2a]
cmp eax, 0x15d
jg 0x4dad6e
je 0x4db3be
cmp eax, 0x140
jg 0x4dad31
je 0x4db31f
cmp eax, 0x122
jge 0x4dad0c
sub eax, 0x109
je 0x4db2aa
sub eax, 0xf
je 0x4db2b4
jmp case.default.0x4dafea
add eax, 0xfffffede
sub eax, 2
jb 0x4db2ca
sub eax, 8
je 0x4db30b
sub eax, 5
je case.0x4dafea.1424
jmp case.default.0x4dafea
cmp eax, 0x157
jg 0x4dad57
je 0x4db37b
sub eax, 0x145
je case.0x4dafea.1424
sub eax, 0xf
je 0x4db356
jmp case.default.0x4dafea
sub eax, 0x159
je 0x4db39a
dec eax
je 0x4db3ab
jmp case.default.0x4dafea
cmp eax, 0x258
jg 0x4dadbc
je 0x4db427
add eax, 0xfffffea2
cmp eax, 0xa
ja case.default.0x4dafea
jmp dword [eax*4 + 0x4dad90]
sub eax, 0x26c
je 0x4db433
sub eax, 0x14
je 0x4db43f
dec eax
je 0x4db450
dec eax
je 0x4db45f
jmp case.default.0x4dafea
cmp eax, 0x37a
jg 0x4daf3b
je 0x4db941
cmp eax, 0x339
jg 0x4dae92
je 0x4db670
cmp eax, 0x320
jg 0x4dae55
je 0x4db5d7
cmp eax, 0x287
jg 0x4dae39
je 0x4db4b6
sub eax, 0x284
je 0x4db480
dec eax
sub eax, 2
jb 0x4db48f
jmp case.default.0x4dafea
sub eax, 0x294
je 0x4db569
add eax, 0xffffffd8
sub eax, 7
jb 0x4db5c9
jmp case.default.0x4dafea
add eax, 0xfffffcd3
cmp eax, 9
ja case.default.0x4dafea
jmp dword [eax*4 + 0x4dae6a]
cmp eax, 0x35c
jg 0x4daede
je 0x4db868
cmp eax, 0x348
jg 0x4daec5
je 0x4db791
sub eax, 0x33c
je 0x4db74a
sub eax, 3
je 0x4db785
jmp case.default.0x4dafea
sub eax, 0x34d
je 0x4db7c9
sub eax, 5
je 0x4db85c
jmp case.default.0x4dafea
add eax, 0xfffffca1
cmp eax, 0x11
ja case.default.0x4dafea
jmp dword [eax*4 + 0x4daef3]
cmp eax, 0x58c
jg 0x4dafdc
je 0x4dbf26
cmp eax, 0x520
jg 0x4daf9b
je 0x4dbbbd
cmp eax, 0x4ec
jg 0x4daf82
je 0x4db9a1
add eax, 0xfffffc18
sub eax, 0x64
jb 0x4db965
sub eax, 0x64
je 0x4db992
jmp case.default.0x4dafea
sub eax, 0x4f6
je 0x4dbaee
sub eax, 0x29
je 0x4dbafd
jmp case.default.0x4dafea
cmp eax, 0x523
jge 0x4dafb9
sub eax, 0x521
je 0x4dbc1e
dec eax
je 0x4dbc85
jmp case.default.0x4dafea
add eax, 0xfffffadd
sub eax, 2
jb 0x4dbd3c
sub eax, 0x53
je 0x4dbe11
dec eax
je 0x4dbe72
jmp case.default.0x4dafea
add eax, 0xfffffa73
cmp eax, 9
ja case.default.0x4dafea
jmp dword [eax*4 + 0x4daff1]
mov eax, dword [0x6690d8]
test byte [eax + 7], 2
je 0x4db02e
call fcn.004d8540
jmp case.default.0x4dafea
push 0
call fcn.005336d8
mov ecx, dword [0x6694ac]
mov ecx, dword [ecx + 4]
xor edx, edx
call fcn.00532544
test al, al
je case.default.0x4dafea
mov eax, 0x7d0
call fcn.0049a860
jmp case.default.0x4dafea
call fcn.004d8540
jmp case.default.0x4dafea
call fcn.004d8584
jmp case.default.0x4dafea
mov al, byte [edi + 0x3f6]
xor al, 1
mov byte [edi + 0x3f6], al
mov eax, edi
call fcn.005b4dd0
mov eax, edi
call fcn.004fe290
mov eax, dword [0x669510]
mov byte [eax + 0xf], 1
jmp case.default.0x4dafea
lea edx, [ebp - 0x18]
mov eax, edi
call fcn.0055fc94
mov eax, dword [ebp - 0x18]
call fcn.00621288
jmp case.default.0x4dafea
mov eax, dword [0x669304]
mov eax, dword [eax]
call fcn.006216bc
mov eax, dword [0x669304]
mov eax, dword [eax]
call fcn.00621268
jmp case.default.0x4dafea
mov eax, dword [0x669208]
call fcn.004652f4
jmp case.default.0x4dafea
call fcn.004d8658
jmp case.default.0x4dafea
cmp esi, 0xa0
je 0x4db10a
cmp esi, 0x593
je 0x4db10a
mov eax, dword [edi + 0x174]
call fcn.0063c474
test al, al
je case.default.0x4dafea
cmp esi, 0x8c
jne 0x4db12e
call fcn.005336d8
xor ecx, ecx
mov edx, edi
call fcn.00532d6c
mov eax, 0x7f8
call fcn.0049a860
mov bl, 1
jmp 0x4db14f
cmp esi, 0xa0
jne 0x4db141
xor eax, eax
call fcn.004d86ec
mov ebx, eax
jmp 0x4db14f
mov eax, dword [0x669468]
mov eax, dword [eax]
call fcn.004d86ec
mov ebx, eax
test bl, bl
je case.default.0x4dafea
mov eax, dword [0x669a6c]
cmp dword [eax], 0
je case.default.0x4dafea
mov eax, dword [0x669118]
mov eax, dword [eax]
cmp dword [eax + 0x18], 0
jne case.default.0x4dafea
mov ax, word [0x4dc050]
push eax
lea edx, [ebp - 0x1c]
mov eax, dword [0x669a6c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
call fcn.00654994
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
call fcn.00654870
mov edx, dword [ebp - 0x18]
mov eax, 0x4dc054
mov cl, 3
call fcn.0061f824
cmp ax, 6
jne case.default.0x4dafea
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edx, 0x523
call fcn.004ea098
jmp case.default.0x4dafea
mov eax, esi
call fcn.004d87c4
jmp case.default.0x4dafea
mov eax, edi
call fcn.00593dd0
test al, al
jne case.default.0x4dafea
mov eax, 0x80c
call fcn.0049a860
jmp case.default.0x4dafea
mov cl, 1
mov edx, dword [edi + 0x160]
mov eax, edi
call fcn.00594330
test al, al
jne case.default.0x4dafea
mov eax, 0x80c
call fcn.0049a860
jmp case.default.0x4dafea
mov eax, esi
call fcn.004d8a40
jmp case.default.0x4dafea
mov eax, edi
call fcn.00594ca8
test al, al
jne case.default.0x4dafea
mov eax, 0x80c
call fcn.0049a860
jmp case.default.0x4dafea
mov eax, edi
call fcn.00595004
test al, al
jne case.default.0x4dafea
mov eax, 0x80c
call fcn.0049a860
jmp case.default.0x4dafea
call fcn.004d8980
jmp case.default.0x4dafea
mov eax, edi
call fcn.004a18b4
jmp case.default.0x4dafea
mov eax, edi
call fcn.004c129c
jmp case.default.0x4dafea
call fcn.004c5518
jmp case.default.0x4dafea
call fcn.004d8b8c
jmp case.default.0x4dafea
call fcn.004d8db0
jmp case.default.0x4dafea
call fcn.004d8e30
jmp case.default.0x4dafea
call fcn.004d9000
jmp case.default.0x4dafea
mov eax, 0x820
call fcn.0049a860
mov eax, edi
call fcn.00432ef0
jmp case.default.0x4dafea
cmp byte [edi + 0x14d], 0
jne 0x4db2ec
cmp dword [edi + 0x81c], 0
je 0x4db2ec
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edx, 0x1c20
call fcn.004ea098
mov dl, byte [edi + 0x14d]
xor dl, 1
mov eax, edi
call fcn.0055c5bc
mov eax, 0x834
call fcn.0049a860
jmp case.default.0x4dafea
mov eax, 0x848
call fcn.0049a860
call fcn.004d90f0
jmp case.default.0x4dafea
mov eax, 0x848
call fcn.0049a860
call fcn.005336d8
mov edx, dword [0x669118]
mov edx, dword [edx]
call fcn.0053334c
jmp case.default.0x4dafea
mov eax, 0x848
call fcn.0049a860
mov eax, esi
call fcn.004d8c3c
jmp case.default.0x4dafea
mov eax, dword [0x6699a0]
mov eax, dword [eax]
call fcn.006185b4
test al, al
je case.default.0x4dafea
or dword [0x66be54], 0x40
call fcn.004fe3f4
jmp case.default.0x4dafea
mov eax, dword [0x6699a0]
mov eax, dword [eax]
xor edx, edx
call fcn.00618568
or dword [0x66be54], 0x40
call fcn.004fe3f4
jmp case.default.0x4dafea
mov eax, dword [0x6696fc]
mov eax, dword [eax]
call fcn.006185b4
jmp case.default.0x4dafea
mov eax, dword [0x6696fc]
mov eax, dword [eax]
xor edx, edx
call fcn.00618568
jmp case.default.0x4dafea
mov eax, dword [0x6694f0]
mov eax, dword [eax]
call fcn.006185b4
jmp case.default.0x4dafea
mov eax, dword [0x6694f0]
mov eax, dword [eax]
xor edx, edx
call fcn.00618568
jmp case.default.0x4dafea
mov eax, dword [0x66989c]
mov eax, dword [eax]
call fcn.006185b4
jmp case.default.0x4dafea
mov eax, dword [0x66989c]
mov eax, dword [eax]
xor edx, edx
call fcn.00618568
jmp case.default.0x4dafea
call fcn.00530afc
mov eax, dword [eax + 0x34]
call fcn.0064e4dc
jmp case.default.0x4dafea
call fcn.004fe288
call fcn.004fe208
jmp case.default.0x4dafea
mov eax, edi
call fcn.005c1828
jmp case.default.0x4dafea
xor eax, eax
call fcn.0045b54c
jmp case.default.0x4dafea
mov eax, dword [0x669350]
mov al, byte [eax]
call fcn.004aab84
jmp case.default.0x4dafea
mov eax, dword [0x4af88c]
call fcn.00622a40
jmp case.default.0x4dafea
call fcn.0044ff74
jmp case.default.0x4dafea
mov eax, dword [0x6694ac]
add eax, 4
call fcn.004a62e0
call fcn.004fe3fc
jmp case.default.0x4dafea
mov eax, dword [0x4c6098]
call fcn.00622a40
jmp case.default.0x4dafea
xor ecx, ecx
mov dl, 1
mov eax, dword [0x4538d4]
call fcn.00454b60
mov edx, dword [0x6699fc]
mov dword [edx], eax
mov eax, dword [0x6699fc]
mov eax, dword [eax]
call fcn.0063c57c
jmp case.default.0x4dafea
xor ecx, ecx
mov dl, 1
mov eax, dword [0x4d1780]
call fcn.00622a00
mov ebx, eax
mov edx, 0x38e28
mov eax, ebx
call fcn.00622a64
mov eax, ebx
call fcn.0063c5d0
cmp eax, 6
jne 0x4db55d
call fcn.0061d4c4
lea eax, [ebp - 0x20]
push eax
mov eax, dword [0x6697a8]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x38], eax
mov byte [ebp - 0x34], 0xb
mov eax, dword [0x6697a8]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x30], eax
mov byte [ebp - 0x2c], 0xb
lea ecx, [ebp - 0x18]
mov edx, 0x4dc098
mov al, 9
call fcn.0061c444
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x3c]
call fcn.006542f4
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x28], eax
mov byte [ebp - 0x24], 0xb
lea edx, [ebp - 0x38]
mov eax, 0x4dc0a8
mov ecx, 2
call fcn.006550e0
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x18]
call fcn.0065432c
mov edx, dword [ebp - 0x18]
mov eax, dword [0x669888]
call fcn.004038bc
call fcn.004fe288
call fcn.004fe208
mov eax, ebx
call fcn.004028c0
jmp case.default.0x4dafea
mov eax, dword [0x66907c]
cmp byte [eax], 0
je 0x4db5ba
mov eax, dword [0x6697c8]
cmp byte [eax], 0
je 0x4db5ba
call fcn.0061d350
test al, al
jne 0x4db5ba
mov eax, 0x4dc0b8
mov cx, word [0x4dc050]
mov dl, 3
call fcn.0061f580
cmp ax, 6
jne case.default.0x4dafea
mov eax, dword [0x669368]
mov byte [eax], 1
call fcn.004fe288
call fcn.004fe208
jmp case.default.0x4dafea
mov eax, dword [0x4c7c14]
call fcn.00622a40
jmp case.default.0x4dafea
push ebp
mov eax, esi
call fcn.004d9190
pop ecx
jmp case.default.0x4dafea
mov dl, 1
mov eax, edi
call fcn.005de328
push 0
call fcn.00529a70
xor ecx, ecx
mov edx, edi
call fcn.00526500
jmp case.default.0x4dafea
call fcn.004d9528
jmp case.default.0x4dafea
call fcn.00529a70
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.0052344c
mov eax, edi
call fcn.005de20c
jmp case.default.0x4dafea
mov eax, esi
call fcn.004d9550
jmp case.default.0x4dafea
call fcn.00529a70
lea ebx, [eax + 0x18]
mov esi, dword [ebx + 0x44]
mov eax, esi
call fcn.00652e98
mov edx, eax
lea ecx, [ebp - 0x18]
mov eax, dword [ebx + 0x3c]
call fcn.00654218
mov edx, dword [ebp - 0x18]
mov eax, esi
call fcn.0046c944
jmp case.default.0x4dafea
push ebp
call fcn.004d96a8
pop ecx
jmp case.default.0x4dafea
mov eax, dword [0x6690d8]
test byte [eax + 0xa9], 0x80
je 0x4db6b7
mov eax, dword [0x6691ec]
test byte [eax + 1], 0x10
je 0x4db6b7
mov eax, 0x4dc198
mov cl, 0x21
mov dl, 3
call fcn.0061faa0
cmp ax, 6
jne 0x4dc000
mov eax, dword [0x6691ec]
and dword [eax], 0xffffefff
mov eax, dword [0x6691ec]
or dword [eax], 0x2000
mov eax, dword [0x6690d8]
test byte [eax + 0xa9], 0x80
je 0x4db6d5
mov eax, dword [0x6690d8]
and word [eax + 0xa9], 0xff7f
jmp 0x4db6e3
mov eax, dword [0x6690d8]
or word [eax + 0xa9], 0x80
call fcn.00529a70
call fcn.0052344c
call fcn.00534a24
mov eax, dword [0x6690d8]
test byte [eax + 0xa9], 0x80
je 0x4db740
mov eax, dword [0x6691ec]
test byte [eax + 1], 0x10
jne 0x4db740
mov eax, dword [0x6691ec]
test byte [eax + 1], 0x20
je 0x4db740
mov eax, 0x4dc26c
mov cl, 0x22
mov dl, 3
call fcn.0061faa0
cmp ax, 6
jne 0x4db740
mov eax, dword [0x6691ec]
or dword [eax], 0x1000
mov eax, dword [0x6691ec]
and dword [eax], 0xffffdfff
call fcn.004fe3f4
jmp case.default.0x4dafea
mov eax, dword [0x6690d8]
test byte [eax + 0xaa], 1
je 0x4db768
mov eax, dword [0x6690d8]
and word [eax + 0xa9], 0xfeff
jmp 0x4db776
mov eax, dword [0x6690d8]
or word [eax + 0xa9], 0x100
call fcn.00534a24
call fcn.004fe3f4
jmp case.default.0x4dafea
mov al, 5
call fcn.004aab84
jmp case.default.0x4dafea
call fcn.00529a70
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 [0x4dc050]
push edx
mov edx, ecx
mov ecx, dword [eax + 4]
mov eax, edi
call fcn.005be038
mov eax, dword [ebp + 8]
push eax
xor eax, eax
call fcn.004d8284
pop ecx
jmp case.default.0x4dafea
mov eax, dword [0x669510]
cmp byte [eax + 0x17], 0
jne case.default.0x4dafea
mov eax, dword [0x669748]
mov eax, dword [eax]
cmp byte [eax + 0x24], 0
je 0x4db833
push 0x12
call sub.user32.dll_GetKeyState
movsx ebx, ax
mov esi, ebx
and esi, 0x80
test esi, esi
je 0x4db808
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 0x4db833
push 0
push 0
push 0
push 0x12
call sub.user32.dll_keybd_event
mov eax, dword [0x669510]
mov byte [eax + 0x17], 1
call fcn.00450040
call fcn.00450100
call fcn.00450040
mov edx, 0x663940
xor ecx, ecx
call fcn.004500d0
jmp case.default.0x4dafea
mov eax, edi
call fcn.005ddda8
jmp case.default.0x4dafea
xor edx, edx
mov eax, dword [edi + 0x3a4]
call fcn.0046c944
jmp case.default.0x4dafea
push ebp
call fcn.004d9748
pop ecx
jmp case.default.0x4dafea
push ebp
call fcn.004d9a8c
pop ecx
jmp case.default.0x4dafea
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 0x4db8cd
mov ecx, dword [edi + 0x25c]
mov edx, dword [edi + 0x258]
mov eax, edi
call fcn.005c0734
lea edx, [ebp - 0x14]
xchg edx, eax
call fcn.00478d68
sub al, 1
jb 0x4db8e3
dec al
je 0x4db8f4
jmp case.default.0x4dafea
lea ecx, [ebp - 0x14]
mov dl, 0x31
mov eax, edi
call fcn.005c7acc
jmp case.default.0x4dafea
lea edx, [ebp - 0x14]
mov eax, edi
call fcn.005ce118
jmp case.default.0x4dafea
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.005c7acc
jmp case.default.0x4dafea
call fcn.004d9dd4
jmp case.default.0x4dafea
call fcn.004670f0
mov eax, dword [0x6691b8]
mov eax, dword [eax]
mov dl, 1
call fcn.00622bdc
mov eax, dword [0x6691b8]
mov eax, dword [eax]
call fcn.00643988
jmp case.default.0x4dafea
push 0
call fcn.005336d8
mov ecx, esi
sub ecx, 0x3e8
xor edx, edx
call fcn.00532544
test al, al
je case.default.0x4dafea
mov eax, 0x7d0
call fcn.0049a860
jmp case.default.0x4dafea
mov eax, dword [0x4755a8]
call fcn.00622a40
jmp case.default.0x4dafea
mov eax, dword [0x669a6c]
cmp dword [eax], 0
je 0x4dba85
lea eax, [ebp - 0x20]
push eax
lea edx, [ebp - 0x1c]
mov eax, dword [0x669a6c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
call fcn.00654994
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
call fcn.00654870
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x3c]
call fcn.006542f4
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.006542f4
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], 0xb
lea edx, [ebp - 0x4c]
mov eax, 0x4dc2e8
mov ecx, 1
call fcn.006550e0
mov eax, dword [ebp - 0x20]
mov cx, word [0x4dc39c]
mov dl, 3
call fcn.0061f580
sub ax, 6
je 0x4dba30
dec ax
je 0x4dba45
jmp 0x4dc000
lea eax, [ebp - 8]
mov edx, dword [0x669a6c]
mov edx, dword [edx]
mov edx, dword [edx + 4]
call fcn.004038bc
jmp 0x4dba93
cmp byte [edi + 0x45c], 0
je 0x4dba5d
mov eax, 0x4dc3a0
call fcn.0061f884
jmp 0x4dc000
cmp byte [edi + 0x427], 0
je 0x4dba75
mov eax, 0x4dc3d0
call fcn.0061f884
jmp 0x4dc000
lea eax, [ebp - 8]
mov edx, dword [edi + 0x160]
call fcn.004038bc
jmp 0x4dba93
lea eax, [ebp - 8]
mov edx, dword [edi + 0x160]
call fcn.004038bc
call fcn.004c469c
mov ebx, eax
cmp dword [ebx + 0x24], 1
jne 0x4dbab5
lea ecx, [ebp - 8]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edx, 0x30f98
call fcn.004eb1b8
jmp 0x4dbae2
call fcn.004c4220
test al, al
je 0x4dbae2
lea eax, [ebp - 4]
mov edx, dword [0x6690d8]
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.004eb1b8
mov eax, ebx
call fcn.004028c0
jmp case.default.0x4dafea
mov eax, dword [0x4c4428]
call fcn.00622a40
jmp case.default.0x4dafea
lea edx, [ebp - 0x18]
mov eax, 0x4dc44c
call fcn.00654410
mov eax, dword [ebp - 0x18]
push eax
call fcn.004fe288
mov eax, dword [eax + 0x1b4]
add eax, 0x38
mov edx, dword [0x6698dc]
mov edx, dword [edx]
mov edx, dword [edx + 0x18]
mov edx, dword [edx + 8]
pop ecx
call fcn.00403b24
call fcn.004fe288
mov eax, dword [eax + 0x1b4]
mov byte [eax + 0x56], 2
call fcn.004fe288
mov eax, dword [eax + 0x1b4]
mov edx, dword [eax]
call dword [edx + 0x28]
test al, al
je case.default.0x4dafea
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edx, 0x523
call fcn.004ea098
mov eax, dword [0x669a6c]
cmp dword [eax], 0
jne case.default.0x4dafea
mov dl, 1
mov eax, dword [0x530e44]
call fcn.00402898
mov edx, dword [0x669a6c]
mov dword [edx], eax
call fcn.004fe288
mov eax, dword [eax + 0x1b4]
lea edx, [ebp - 0x18]
call fcn.0062d7b8
mov edx, dword [ebp - 0x18]
mov eax, dword [0x669a6c]
mov eax, dword [eax]
add eax, 4
call fcn.004038bc
call fcn.004fe288
call fcn.004fb6b4
jmp case.default.0x4dafea
call fcn.004fe288
mov eax, dword [eax + 0x1b0]
add eax, 0x38
call fcn.00403880
call fcn.004fe288
mov eax, dword [eax + 0x1b0]
mov byte [eax + 0x56], 1
call fcn.004fe288
mov eax, dword [eax + 0x1b0]
mov edx, dword [eax]
call dword [edx + 0x28]
test al, al
je case.default.0x4dafea
call fcn.004fe288
mov eax, dword [eax + 0x1b0]
lea edx, [ebp - 0x18]
call fcn.0062d7b8
mov eax, dword [ebp - 0x18]
push eax
call fcn.005336d8
pop edx
call fcn.00531698
jmp case.default.0x4dafea
mov eax, dword [0x669118]
mov eax, dword [eax]
mov edi, dword [eax + 0x18]
dec edi
test edi, edi
jl 0x4dbc6a
inc edi
xor esi, esi
mov eax, dword [0x669118]
mov eax, dword [eax]
mov eax, dword [eax + 0x1c]
mov ebx, dword [eax + esi*4]
mov eax, ebx
call fcn.0055fcc0
test al, al
je 0x4dbc66
cmp byte [ebx + 0x45c], 0
jne 0x4dbc66
mov eax, ebx
call fcn.00593dd0
test al, al
je 0x4dbc66
call fcn.004fe3f4
jmp 0x4dc000
inc esi
dec edi
jne 0x4dbc30
mov eax, dword [0x669a6c]
mov eax, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [0x669a6c]
mov eax, dword [eax]
call fcn.00530fe0
jmp case.default.0x4dafea
call fcn.004fe288
mov eax, dword [eax + 0x1b4]
add eax, 0x38
mov edx, dword [0x669a6c]
mov edx, dword [edx]
mov edx, dword [edx + 4]
call fcn.004038bc
call fcn.004fe288
mov eax, dword [eax + 0x1b4]
mov byte [eax + 0x56], 2
call fcn.004fe288
mov eax, dword [eax + 0x1b4]
mov edx, dword [eax]
call dword [edx + 0x28]
test al, al
je case.default.0x4dafea
call fcn.004fe288
mov eax, dword [eax + 0x1b4]
lea edx, [ebp - 0x18]
call fcn.0062d7b8
mov eax, dword [ebp - 0x18]
mov edx, dword [0x669a6c]
mov edx, dword [edx]
mov edx, dword [edx + 4]
call fcn.00654730
test al, al
jne case.default.0x4dafea
call fcn.004fe288
mov eax, dword [eax + 0x1b4]
lea edx, [ebp - 0x18]
call fcn.0062d7b8
mov edx, dword [ebp - 0x18]
mov eax, dword [0x669a6c]
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.004ea098
call fcn.004fe288
call fcn.004fb6b4
jmp case.default.0x4dafea
mov ax, word [0x4dc39c]
push eax
lea edx, [ebp - 0x1c]
mov eax, dword [0x669a6c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
call fcn.00654994
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
call fcn.00654870
mov edx, dword [ebp - 0x18]
mov eax, 0x4dc460
mov cl, 3
call fcn.0061f824
sub ax, 2
je 0x4dc000
sub ax, 4
jne 0x4dbdaa
call fcn.004d8980
test al, al
je 0x4dc000
mov eax, dword [0x669a6c]
mov eax, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [0x669a6c]
mov eax, dword [eax]
call fcn.00530fe0
test al, al
je 0x4dc000
mov eax, dword [0x669a6c]
call fcn.006526a0
cmp esi, 0x523
jne 0x4dbe02
mov eax, dword [0x669118]
mov eax, dword [eax]
mov esi, dword [eax + 0x18]
dec esi
cmp esi, 0
jl 0x4dbe02
mov eax, dword [0x669118]
mov eax, dword [eax]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + esi*4]
cmp byte [eax + 0x45c], 0
jne 0x4dbdfc
call fcn.005336d8
mov edx, dword [0x669118]
mov edx, dword [edx]
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + esi*4]
mov cl, 1
call fcn.00532d6c
dec esi
cmp esi, 0xffffffff
jne 0x4dbdcc
call fcn.004fe288
call fcn.004fb6b4
jmp case.default.0x4dafea
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 [0x6695d8]
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.0x4dafea
mov eax, dword [0x6695d8]
mov eax, dword [eax]
mov edx, esi
mov ecx, dword [eax]
call dword [ecx + 0x18]
call fcn.00401fac
mov eax, dword [0x6695d8]
mov eax, dword [eax]
mov edx, esi
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp case.default.0x4dafea
mov eax, dword [0x669118]
mov eax, dword [eax]
mov esi, dword [eax + 0x18]
dec esi
cmp esi, 0
jl 0x4dbeb3
mov eax, dword [0x669118]
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 0x4dbe82
call fcn.00530afc
call fcn.0052fbc0
test al, al
je 0x4dbeec
call fcn.00530afc
call fcn.0052f57c
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 [0x6695d8]
mov eax, dword [eax]
mov esi, dword [eax + 0x24]
dec esi
cmp esi, 0
jl 0x4dbf15
mov eax, dword [0x6695d8]
mov eax, dword [eax]
mov edx, esi
mov ecx, dword [eax]
call dword [ecx + 0x18]
call fcn.00401fac
dec esi
cmp esi, 0xffffffff
jne 0x4dbefc
mov eax, dword [0x6695d8]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x34]
jmp case.default.0x4dafea
mov edx, dword [0x669118]
mov edx, dword [edx]
mov eax, dword [0x669468]
mov eax, dword [eax]
call fcn.0064e164
mov eax, dword [0x669510]
mov byte [eax + 0xf], 1
jmp case.default.0x4dafea
mov eax, dword [0x669468]
mov eax, dword [eax]
call fcn.0064e144
mov eax, dword [0x669510]
mov byte [eax + 0xf], 1
jmp case.default.0x4dafea
mov eax, 0x848
call fcn.0049a860
call fcn.005336d8
mov edx, dword [0x669468]
mov edx, dword [edx]
call fcn.0053334c
jmp case.default.0x4dafea
call fcn.004da120
jmp case.default.0x4dafea
call fcn.004da374
jmp case.default.0x4dafea
call fcn.004da8bc
jmp case.default.0x4dafea
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edx, 0x596
call fcn.004d4564
cmp al, 1
setne bl
mov eax, dword [0x669468]
mov eax, dword [eax]
mov esi, dword [eax + 0x18]
dec esi
cmp esi, 0
jl 0x4dbff2
mov eax, dword [0x669468]
mov eax, dword [eax]
mov eax, dword [eax + 0x1c]
mov edi, dword [eax + esi*4]
cmp byte [edi + 0x45c], 0
jne 0x4dbfec
cmp bl, byte [edi + 0x3f6]
je 0x4dbfec
mov byte [edi + 0x3f6], bl
mov eax, edi
call fcn.005b4dd0
mov eax, edi
call fcn.004fe290
dec esi
cmp esi, 0xffffffff
jne 0x4dbfba
mov eax, dword [0x669510]
mov byte [eax + 0xf], 1
call fcn.004fe3f4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4dc048
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 [0x4d4130]
call fcn.00403f10
ret