Function at 0x5e2d1c
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 2
add esp, 0xfffff004
push eax
dec eax
jne 0x5e2d25
mov eax, dword [ebp - 4]
add esp, 0xfffff544
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x2a8c], ebx
mov dword [ebp - 0x2ab0], ebx
mov dword [ebp - 0x2a68], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
lea eax, [ebp - 0x2a64]
mov edx, dword [0x543d24]
call fcn.00403e48
xor eax, eax
push ebp
push 0x5e5aeb
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
call fcn.0065b5d4
mov eax, dword [0x672428]
mov eax, dword [eax + 0x17c]
mov dword [ebp - 0x5c], eax
mov eax, dword [0x672428]
or dword [eax + 0x17c], 0x100
mov eax, dword [0x672010]
mov eax, dword [eax]
mov edx, dword [ebp + 8]
call fcn.0046e3f4
mov dword [ebp - 4], eax
mov eax, 0x675460
call fcn.00403880
mov byte [0x675456], 0
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0xa8]
mov edx, dword [edx + 0x1c]
mov edi, dword [edx + eax*4]
xor ebx, ebx
mov esi, 0x675418
mov eax, ebx
cmp al, 0x1f
ja 0x5e2df6
and eax, 0x7f
bt dword [ebp - 0x10], eax
jae case.default.0x5e2e12
cmp byte [esi], 2
je case.default.0x5e2e12
xor eax, eax
mov al, bl
cmp eax, 0x10
ja case.default.0x5e2e12
jmp dword [eax*4 + 0x5e2e19]
mov eax, dword [0x672428]
test byte [eax + 0x2bc], 0x20
je case.default.0x5e2e12
mov al, 1
call fcn.0065503c
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
mov dword [ebp - 0x238], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x234], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
add eax, 2
sub dword [ebp - 0x234], eax
cmp dword [ebp - 0x234], 0
jge 0x5e2eaa
xor eax, eax
mov dword [ebp - 0x234], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
sub eax, dword [ebp - 0x234]
mov dword [ebp - 0x228], eax
push ebp
lea eax, [ebp - 0x238]
call fcn.005e1de4
pop ecx
cmp dword [0x67542c], 0
jl 0x5e305b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
mov edx, dword [0x675430]
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0
jl 0x5e2f0f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x9c]
mov ecx, dword [eax]
call dword [ecx + 0x18]
cmp al, 1
jne 0x5e305b
push ebp
lea eax, [ebp - 0x238]
call fcn.005e1dc4
pop ecx
test al, al
jne 0x5e305b
push ebp
mov edx, dword [0x675444]
mov eax, dword [0x675440]
call fcn.005e255c
pop ecx
mov eax, dword [0x675440]
mov dword [ebp - 0x234], eax
mov eax, dword [0x675444]
sub eax, dword [0x675440]
mov dword [ebp - 0x228], eax
lea eax, [ebp - 0x2a68]
push eax
lea edx, [ebp - 0x238]
mov cl, byte [0x5e5afc]
mov eax, dword [ebp - 8]
call fcn.005c3dd4
mov edx, dword [ebp - 0x2a68]
mov eax, dword [0x675438]
call fcn.00403bd0
je 0x5e2fd2
call fcn.00656518
mov dword [ebp - 0x28], eax
mov edx, dword [0x675438]
mov eax, dword [ebp - 0x28]
call fcn.0065660c
mov eax, dword [ebp - 0x28]
push eax
mov ax, word [0x5e5b00]
push eax
lea ecx, [ebp - 0x2a70]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [0x675444]
call fcn.006561ec
lea ecx, [ebp - 0x2a70]
lea edx, [ebp - 0x238]
mov eax, dword [ebp - 8]
call fcn.005d93fc
mov eax, dword [ebp - 0x28]
call fcn.004028c0
cmp dword [0x675458], 0
jl 0x5e301f
mov eax, dword [0x675458]
mov dword [ebp - 0x234], eax
mov eax, dword [0x67545c]
sub eax, dword [0x675458]
mov dword [ebp - 0x228], eax
lea eax, [ebp - 0x2ec]
call fcn.005447c4
mov dword [ebp - 0x2a8], 1
push ebp
lea edx, [ebp - 0x2ec]
lea eax, [ebp - 0x238]
call fcn.005e2240
pop ecx
push ebp
mov eax, dword [0x675438]
call fcn.00403ab8
mov edx, eax
add edx, dword [0x675440]
mov eax, dword [0x675440]
call fcn.005e25e0
pop ecx
mov eax, dword [0x675438]
call fcn.00403ab8
mov edx, dword [0x675444]
sub edx, dword [0x675440]
sub eax, edx
mov edx, dword [ebp - 0xc]
add dword [edx + 4], eax
mov al, 2
call fcn.0065503c
jmp case.default.0x5e2e12
mov eax, dword [0x672428]
test byte [eax + 0x2bc], 2
je case.default.0x5e2e12
push ebp
lea edx, [ebp - 0x2a88]
lea eax, [ebp - 0x14]
call fcn.005e2620
pop ecx
push esi
push edi
lea esi, [ebp - 0x2a88]
lea edi, [ebp - 0x238]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
push ebp
mov eax, dword [ebp - 0x14]
call fcn.005e1cc8
pop ecx
test al, al
je case.default.0x5e2e12
push ebp
lea eax, [ebp - 0x238]
call fcn.005e1dc4
pop ecx
test al, al
jne case.default.0x5e2e12
push 0
push 0xff
push 0x5e5b04
lea edx, [ebp - 0x238]
xor ecx, ecx
mov eax, dword [ebp - 8]
call fcn.005ea634
test eax, eax
jne case.default.0x5e2e12
mov eax, 0x675460
mov edx, dword [ebp - 0x14]
call fcn.004038bc
mov eax, dword [ebp - 0x238]
mov dword [ebp - 0x258], eax
mov eax, dword [ebp - 0x234]
mov dword [ebp - 0x254], eax
inc dword [ebp - 0x254]
mov eax, dword [ebp - 0x258]
mov dword [ebp - 0x248], eax
mov eax, dword [ebp - 0x254]
mov dword [ebp - 0x244], eax
inc dword [ebp - 0x244]
push ebp
mov eax, dword [ebp - 0x254]
dec eax
mov edx, dword [ebp - 0x244]
call fcn.005e255c
pop ecx
push 2
mov ax, word [0x5e5b00]
push eax
push 0
lea ecx, [ebp - 0x258]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005db7a4
push ebp
mov eax, dword [ebp - 0x254]
dec eax
mov edx, dword [ebp - 0x244]
call fcn.005e25e0
pop ecx
jmp case.default.0x5e2e12
mov eax, dword [0x672428]
test byte [eax + 0x2bc], 8
je case.default.0x5e2e12
lea eax, [ebp - 0x220]
push eax
call sub.user32.dll_GetKeyboardState
test byte [ebp - 0x20c], 1
jne 0x5e31ad
test byte [ebp + 0xc], 2
jne case.default.0x5e2e12
push ebp
lea edx, [ebp - 0x2a88]
lea eax, [ebp - 0x14]
call fcn.005e2620
pop ecx
push esi
push edi
lea esi, [ebp - 0x2a88]
lea edi, [ebp - 0x238]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
push ebp
mov eax, dword [ebp - 0x14]
call fcn.005e1bf0
pop ecx
test al, al
je case.default.0x5e2e12
push ebp
lea eax, [ebp - 0x238]
call fcn.005e1dc4
pop ecx
test al, al
jne case.default.0x5e2e12
push 0
push 0xff
push 0x5e5b04
lea edx, [ebp - 0x238]
xor ecx, ecx
mov eax, dword [ebp - 8]
call fcn.005ea634
test eax, eax
jne case.default.0x5e2e12
mov eax, 0x675460
mov edx, dword [ebp - 0x14]
call fcn.004038bc
lea edx, [ebp - 0x258]
lea eax, [ebp - 0x238]
call fcn.005442a8
push ebp
mov edx, dword [ebp - 0x244]
mov eax, dword [ebp - 0x254]
call fcn.005e255c
pop ecx
push 3
mov ax, word [0x5e5b00]
push eax
push 0
lea ecx, [ebp - 0x258]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005db7a4
push ebp
mov edx, dword [ebp - 0x244]
mov eax, dword [ebp - 0x254]
call fcn.005e25e0
pop ecx
test byte [ebp + 0xc], 2
je case.default.0x5e2e12
push 0
push 1
push 0
push 0x14
call sub.user32.dll_keybd_event
push 0
push 3
push 0
push 0x14
call sub.user32.dll_keybd_event
jmp case.default.0x5e2e12
mov eax, dword [0x672428]
test byte [eax + 0x2bc], 4
je case.default.0x5e2e12
push ebp
lea edx, [ebp - 0x2a88]
lea eax, [ebp - 0x14]
call fcn.005e2620
pop ecx
push esi
push edi
lea esi, [ebp - 0x2a88]
lea edi, [ebp - 0x238]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp dword [ebp - 0x14], 0
je case.default.0x5e2e12
push 0
push 0xff
push 0x5e5b04
lea edx, [ebp - 0x238]
xor ecx, ecx
mov eax, dword [ebp - 8]
call fcn.005ea634
test eax, eax
jne case.default.0x5e2e12
mov eax, dword [ebp - 0x14]
call fcn.0065bf04
test al, al
je case.default.0x5e2e12
mov eax, dword [ebp - 0x14]
mov ax, word [eax]
push eax
call sub.user32.dll_IsCharAlphaW
test eax, eax
je case.default.0x5e2e12
lea edx, [ebp - 0x238]
mov eax, dword [ebp - 8]
call fcn.005c447c
test al, al
jne case.default.0x5e2e12
push ebp
mov eax, dword [ebp - 0x14]
call fcn.005e1ae8
pop ecx
test al, al
jne case.default.0x5e2e12
lea ecx, [ebp - 0x2a88]
lea edx, [ebp - 0x238]
mov eax, dword [ebp - 8]
call fcn.005c45a8
cmp dword [ebp - 0x2a78], 0
jne case.default.0x5e2e12
lea edx, [ebp - 0x238]
mov eax, dword [ebp - 8]
call fcn.005c4c04
test al, al
je case.default.0x5e2e12
push ebp
lea eax, [ebp - 0x238]
call fcn.005e1dc4
pop ecx
test al, al
jne case.default.0x5e2e12
mov eax, 0x675460
mov edx, dword [ebp - 0x14]
call fcn.004038bc
mov eax, dword [ebp - 0x238]
mov dword [ebp - 0x258], eax
mov eax, dword [ebp - 0x234]
mov dword [ebp - 0x254], eax
mov eax, dword [ebp - 0x258]
mov dword [ebp - 0x248], eax
mov eax, dword [ebp - 0x254]
mov dword [ebp - 0x244], eax
inc dword [ebp - 0x244]
push ebp
mov edx, dword [ebp - 0x244]
mov eax, dword [ebp - 0x254]
call fcn.005e255c
pop ecx
push 1
mov ax, word [0x5e5b00]
push eax
push 0
lea ecx, [ebp - 0x258]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005db7a4
push ebp
mov edx, dword [ebp - 0x244]
mov eax, dword [ebp - 0x254]
call fcn.005e25e0
pop ecx
jmp case.default.0x5e2e12
mov eax, dword [ebp - 4]
cmp byte [eax + 0x30], 0
je case.default.0x5e2e12
mov eax, edi
call fcn.00552164
mov dword [ebp - 0xb0], eax
push ebp
lea edx, [ebp - 0x2a88]
xor eax, eax
call fcn.005e2620
pop ecx
push esi
push edi
lea esi, [ebp - 0x2a88]
lea edi, [ebp - 0x238]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp dword [ebp - 0x228], 0
jne 0x5e3489
lea ecx, [ebp - 0x238]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.005c3a64
cmp dword [ebp - 0x228], 0
jle 0x5e360f
mov eax, dword [ebp - 0x234]
add eax, dword [ebp - 0x228]
inc eax
mov edx, dword [ebp - 0xc]
cmp eax, dword [edx + 4]
jl 0x5e360f
cmp dword [ebp - 0x234], 0
jle 0x5e360f
mov eax, dword [ebp - 0xb0]
mov edx, dword [ebp - 0x234]
cmp word [eax + edx*2 - 2], 0x27
je 0x5e34e9
mov eax, dword [ebp - 0xb0]
mov edx, dword [ebp - 0x234]
cmp word [eax + edx*2 - 2], 0x2018
jne 0x5e360f
mov eax, dword [ebp - 0x234]
add eax, dword [ebp - 0x228]
mov edx, dword [ebp - 0xb0]
cmp word [edx + eax*2], 0x27
je 0x5e360f
mov eax, dword [ebp - 0x234]
add eax, dword [ebp - 0x228]
mov edx, dword [ebp - 0xb0]
cmp word [edx + eax*2], 0x2019
je 0x5e360f
lea ecx, [ebp - 0x2a8c]
lea edx, [ebp - 0x238]
mov eax, dword [ebp - 8]
call fcn.005c3b94
mov eax, dword [ebp - 0x2a8c]
mov edx, 0x80000000
call fcn.0065daa4
cmp eax, 0x80000000
jne 0x5e358f
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 9
jne 0x5e360f
lea eax, [ebp - 0x2a68]
push eax
lea edx, [ebp - 0x238]
mov cl, byte [0x5e5b00]
mov eax, dword [ebp - 8]
call fcn.005c3dd4
mov eax, dword [ebp - 0x2a68]
mov edx, 0x5e5b14
call fcn.0065bdfc
test eax, eax
jne 0x5e360f
call fcn.00656518
mov dword [ebp - 0x28], eax
mov edx, 0x2019
mov eax, dword [ebp - 0x28]
call fcn.00656684
push ebp
mov eax, dword [ebp - 0x234]
dec eax
mov edx, dword [ebp - 0x234]
call fcn.005e255c
pop ecx
mov eax, dword [ebp - 0x28]
push eax
mov ax, word [0x5e5b00]
push eax
lea ecx, [ebp - 0x2a70]
mov edx, dword [ebp - 0x234]
dec edx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.006561ec
lea edx, [ebp - 0x2a70]
lea ecx, [ebp - 0x238]
mov eax, dword [ebp - 8]
call fcn.005d93fc
push ebp
mov eax, dword [ebp - 0x234]
dec eax
mov edx, dword [ebp - 0x234]
call fcn.005e25e0
pop ecx
mov eax, dword [ebp - 0x28]
call fcn.004028c0
jmp 0x5e3891
mov eax, dword [ebp - 0xc]
cmp dword [eax + 4], 0
jle 0x5e3891
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0xb0]
mov ax, word [edx + eax*2 - 2]
sub ax, 0x22
je 0x5e363d
sub ax, 5
jne 0x5e3891
call fcn.00656518
mov dword [ebp - 0x28], eax
push ebp
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
dec eax
mov edx, dword [ebp - 0xb0]
call fcn.005e2b68
pop ecx
and eax, 0x7f
mov edx, dword [ebp - 0xc]
mov edx, dword [edx + 4]
mov ecx, dword [ebp - 0xb0]
cmp word [ecx + edx*2 - 2], 0x27
sete dl
and edx, 0x7f
mov ecx, dword [ebp - 4]
movzx ecx, byte [ecx + 0x31]
lea ecx, [ecx*8 + 0x66dec8]
lea edx, [ecx + edx*4]
movzx edx, word [edx + eax*2]
mov eax, dword [ebp - 0x28]
call fcn.00656684
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0xb0]
mov ax, word [edx + eax*2 - 2]
mov word [0x675452], ax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
mov ax, word [eax]
mov word [0x675454], ax
mov byte [ebp - 0xa8], 0
mov ax, word [0x675454]
mov word [ebp - 0xa2], ax
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31], 3
jne 0x5e36fd
mov ax, word [ebp - 0xa2]
sub ax, 0xab
je 0x5e36e9
sub ax, 0x10
je 0x5e36f4
jmp 0x5e36fd
mov word [ebp - 0xa2], 0xbb
jmp 0x5e36fd
mov word [ebp - 0xa2], 0xab
mov eax, dword [0x672428]
test byte [eax + 0x2bc], 0x10
je 0x5e3752
mov dx, word [0x675454]
mov eax, dword [ebp - 4]
call fcn.0046cea4
test al, al
je 0x5e3752
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
mov dx, word [ebp - 0xa2]
call fcn.006570e4
test al, al
jne 0x5e3752
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x3d]
mov edx, eax
shl edx, 7
add edx, 0x20
mov eax, dword [ebp - 0x28]
call fcn.00656684
mov byte [ebp - 0xa8], 1
mov ax, word [0x675454]
mov word [ebp - 0xa2], ax
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x31]
sub al, 2
je 0x5e376f
dec al
je 0x5e3787
jmp 0x5e37b0
mov ax, word [ebp - 0xa2]
cmp ax, 0x201c
jne 0x5e37b0
mov word [ebp - 0xa2], 0x201d
jmp 0x5e37b0
mov ax, word [ebp - 0xa2]
sub ax, 0xab
je 0x5e379c
sub ax, 0x10
je 0x5e37a7
jmp 0x5e37b0
mov word [ebp - 0xa2], 0xbb
jmp 0x5e37b0
mov word [ebp - 0xa2], 0xab
mov eax, dword [0x672428]
test byte [eax + 0x2bc], 0x10
je 0x5e3814
mov dx, word [0x675454]
mov eax, dword [ebp - 4]
call fcn.0046ced4
test al, al
je 0x5e3814
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov dx, word [ebp - 0xa2]
call fcn.006570e4
test al, al
jne 0x5e3814
movzx edx, word [0x675454]
mov eax, dword [ebp - 0x28]
call fcn.00656684
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x3d]
shl eax, 7
add ax, 0x20
mov edx, dword [ebp - 0x28]
mov edx, dword [edx + 4]
mov word [edx], ax
mov byte [ebp - 0xa8], 1
push ebp
mov edx, dword [ebp - 0xc]
mov edx, dword [edx + 4]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
dec eax
call fcn.005e255c
pop ecx
mov eax, dword [ebp - 0x28]
push eax
mov ax, word [0x5e5b00]
push eax
lea ecx, [ebp - 0x2a70]
mov edx, dword [ebp - 0xc]
mov edx, dword [edx + 4]
dec edx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.006561ec
lea edx, [ebp - 0x2a70]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.005d93fc
push ebp
mov edx, dword [ebp - 0xc]
mov edx, dword [edx + 4]
dec edx
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 8]
shr eax, 1
add edx, eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
dec eax
call fcn.005e25e0
pop ecx
mov eax, dword [ebp - 0x28]
call fcn.004028c0
cmp byte [ebp - 0xa8], 0
je 0x5e3891
mov eax, dword [ebp - 0xc]
inc dword [eax + 4]
dec dword [0x6752ac]
jmp case.default.0x5e2e12
mov eax, dword [0x672428]
test byte [eax + 0x2bc], 0x10
je case.default.0x5e2e12
mov eax, edi
call fcn.00552164
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x60]
mov dx, word [eax + edx*2]
mov eax, dword [0x67226c]
mov eax, dword [eax]
call fcn.006570e4
test al, al
je 0x5e3936
jmp 0x5e38ec
dec dword [ebp - 0x60]
cmp dword [ebp - 0x60], 0
jle 0x5e3a4c
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x60]
mov dx, word [eax + edx*2 - 2]
mov eax, dword [0x672730]
mov eax, dword [eax]
call fcn.006570e4
test al, al
jne 0x5e38e9
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x60]
mov ax, word [eax + edx*2 - 2]
sub ax, 9
je 0x5e38e9
sub ax, 6
je 0x5e38e9
jmp 0x5e3a4c
dec dword [ebp - 0x60]
cmp dword [ebp - 0x60], 0
jle 0x5e395f
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x60]
mov dx, word [eax + edx*2 - 2]
mov eax, dword [0x672730]
mov eax, dword [eax]
call fcn.006570e4
test al, al
jne 0x5e3933
jmp 0x5e395f
inc dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
cmp eax, dword [edi + 8]
jge 0x5e3984
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x64]
mov dx, word [eax + edx*2]
mov eax, dword [0x672730]
mov eax, dword [eax]
call fcn.006570e4
test al, al
jne 0x5e395c
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x64]
mov dx, word [eax + edx*2]
mov eax, dword [0x67226c]
mov eax, dword [eax]
call fcn.006570e4
test al, al
jne 0x5e3a4c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0
je 0x5e39e5
mov eax, dword [ebp - 0x64]
sub eax, dword [ebp - 0x60]
cmp eax, 2
jne 0x5e39e5
cmp dword [ebp - 0x60], 0
jle 0x5e39e5
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x60]
mov ax, word [eax + edx*2 - 2]
sub ax, 0x21
je 0x5e39df
sub ax, 0xd
je 0x5e39df
sub ax, 0x11
jne 0x5e39e5
sub dword [ebp - 0x64], 2
jmp 0x5e3a4c
mov eax, dword [ebp - 0x64]
cmp eax, dword [ebp - 0x60]
jle 0x5e3a4c
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0xb4]
push eax
lea eax, [ebp - 0x2a94]
push eax
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x60]
mov eax, dword [ebp - 8]
call fcn.005d4358
mov al, byte [ebp - 0x2a94]
sub al, 2
jb 0x5e3a4c
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0xb4]
push eax
lea eax, [ebp - 0x2a9c]
push eax
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 8]
call fcn.005d4358
mov al, byte [ebp - 0x2a9b]
test al, al
je 0x5e3a4c
sub al, 2
je 0x5e3a4c
inc dword [ebp - 0x60]
mov eax, dword [ebp - 0x64]
cmp eax, dword [ebp - 0x60]
jle 0x5e3abe
push ebp
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x60]
call fcn.005e255c
pop ecx
lea ecx, [ebp - 0x2a70]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [ebp - 0x64]
call fcn.006561ec
lea eax, [ebp - 0x2a70]
push eax
mov ax, word [0x5e5b00]
push eax
lea ecx, [ebp - 0x2aa4]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [ebp - 0x60]
call fcn.006561ec
lea ecx, [ebp - 0x2aa4]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d8f94
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x60]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x60]
mov dword [0x675448], eax
mov eax, dword [ebp - 0x64]
mov dword [0x67544c], eax
dec dword [0x6752ac]
jmp case.default.0x5e2e12
mov eax, dword [0x672428]
test byte [eax + 0x2bc], 0x10
je case.default.0x5e2e12
mov eax, dword [ebp - 0xc]
cmp dword [eax + 4], 0
jle case.default.0x5e2e12
mov eax, edi
call fcn.00552164
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0xb8]
mov ax, word [edx + eax*2 - 2]
mov word [ebp - 0xa4], ax
mov ax, word [ebp - 0xa4]
call fcn.00654f68
test al, al
je 0x5e3e4c
cmp word [ebp - 0xa4], 0x27
je 0x5e3e4c
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
sub eax, 2
mov ecx, dword [ebp - 0xb8]
mov edx, dword [edi + 8]
call fcn.005e22d8
test al, al
jne 0x5e3e4c
push ebp
mov eax, dword [ebp - 0xc]
call fcn.005e2330
pop ecx
test al, al
jne 0x5e3e4c
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0xb8]
push eax
lea eax, [ebp - 0xbd]
push eax
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ecx + 4]
dec ecx
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov eax, dword [ebp - 8]
call fcn.005d4358
mov al, byte [ebp - 0xbd]
sub al, 2
je 0x5e3b94
sub al, 2
jne 0x5e3ba2
mov al, byte [ebp - 0xbc]
sub al, 1
je 0x5e3ba6
sub al, 3
je 0x5e3ba6
xor eax, eax
jmp 0x5e3ba8
mov al, 1
mov byte [ebp - 0xa5], al
cmp byte [ebp - 0xa5], 0
je 0x5e3c23
cmp word [ebp - 0xa4], 0x28
jne 0x5e3c23
lea ecx, [ebp - 0x238]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.005c3a64
cmp dword [ebp - 0x228], 0
je 0x5e3c23
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x2a8c]
lea edx, [ebp - 0x238]
mov eax, dword [ebp - 8]
call fcn.005c3b94
mov ecx, dword [ebp - 0x2a8c]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0xa8]
mov edx, dword [edx + 0x1c]
mov eax, dword [edx + eax*4]
lea edx, [ebp - 0x238]
call fcn.0051dc94
test al, al
je 0x5e3c23
mov byte [ebp - 0xa5], 0
mov al, byte [ebp - 0xb9]
mov byte [ebp - 0xa7], al
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0xb8]
push eax
lea eax, [ebp - 0xc2]
push eax
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ecx + 4]
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov eax, dword [ebp - 8]
call fcn.005d4358
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0xb8]
mov ax, word [edx + eax*2]
call fcn.00654f68
test al, al
jne 0x5e3c89
mov al, byte [ebp - 0xc2]
sub al, 2
je 0x5e3c7b
sub al, 2
jne 0x5e3c89
mov al, byte [ebp - 0xc1]
sub al, 1
je 0x5e3c8d
sub al, 3
je 0x5e3c8d
xor eax, eax
jmp 0x5e3c8f
mov al, 1
mov byte [ebp - 0xa6], al
call fcn.00656518
mov dword [ebp - 0x28], eax
mov edx, 0x20
mov eax, dword [ebp - 0x28]
call fcn.00656684
mov dl, 0x2f
mov eax, dword [ebp - 8]
call fcn.00565be8
mov dl, 0x7b
mov eax, dword [ebp - 8]
call fcn.00565be8
cmp byte [ebp - 0xa6], 0
je 0x5e3d27
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3d], 0
je 0x5e3cee
mov dx, word [ebp - 0xa4]
mov eax, dword [ebp - 4]
call fcn.0046cea4
test al, al
je 0x5e3cee
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
mov word [eax], 0xa0
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
push esi
push edi
mov esi, eax
lea edi, [edx + 0x250]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2f8]
call fcn.005481e4
mov cx, word [0x5e5b00]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.005d9e70
cmp byte [ebp - 0xa5], 0
je 0x5e3dab
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x3d]
and al, byte [ebp - 0xa7]
je 0x5e3d5e
mov dx, word [ebp - 0xa4]
mov eax, dword [ebp - 4]
call fcn.0046cea4
test al, al
jne 0x5e3d5e
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
mov word [eax], 0xa0
jmp 0x5e3d69
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
mov word [eax], 0x20
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
push esi
push edi
mov esi, eax
lea edi, [edx + 0x250]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebp - 8]
dec dword [eax + 0x254]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2f8]
call fcn.005481e4
mov cx, word [0x5e5b00]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.005d9e70
mov edx, 2
mov eax, dword [ebp - 8]
call fcn.00565ca4
mov eax, dword [ebp - 0x28]
call fcn.004028c0
push ebp
mov edx, dword [ebp - 0xc]
mov edx, dword [edx + 4]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
call fcn.005e255c
pop ecx
mov al, byte [ebp - 0xa5]
and al, byte [ebp - 0xa6]
je 0x5e3dfa
push ebp
mov edx, dword [ebp - 0xc]
mov edx, dword [edx + 4]
add edx, 2
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
dec eax
call fcn.005e25e0
pop ecx
jmp 0x5e3e36
cmp byte [ebp - 0xa5], 0
je 0x5e3e19
push ebp
mov edx, dword [ebp - 0xc]
mov edx, dword [edx + 4]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
dec eax
call fcn.005e25e0
pop ecx
jmp 0x5e3e36
cmp byte [ebp - 0xa6], 0
je 0x5e3e36
push ebp
mov edx, dword [ebp - 0xc]
mov edx, dword [edx + 4]
inc edx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
call fcn.005e25e0
pop ecx
mov al, byte [ebp - 0xa5]
mov byte [0x675450], al
mov al, byte [ebp - 0xa6]
mov byte [0x675451], al
dec dword [0x6752ac]
jmp case.default.0x5e2e12
mov eax, dword [0x672428]
test byte [eax + 0x2bc], 0x10
je case.default.0x5e2e12
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3d], 0
je case.default.0x5e2e12
mov eax, edi
call fcn.00552164
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
dec eax
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0x68]
cmp word [eax + edx*2], 0x20
jne 0x5e4071
cmp dword [ebp - 0x68], 0
jle 0x5e3ec5
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0x68]
mov dx, word [eax + edx*2 - 2]
mov eax, dword [ebp - 4]
call fcn.0046cea4
test al, al
jne 0x5e3fde
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0x68]
mov dx, word [eax + edx*2 + 2]
mov eax, dword [ebp - 4]
call fcn.0046ced4
test al, al
jne 0x5e3fde
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0x68]
mov ax, word [eax + edx*2 + 2]
call fcn.00654f68
test al, al
je 0x5e4071
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0xc8]
push eax
lea eax, [ebp - 0x2a94]
push eax
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 8]
call fcn.005d4358
cmp byte [ebp - 0x2a94], 0
je 0x5e4071
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0xc8]
push eax
lea eax, [ebp - 0x2a9c]
push eax
mov ecx, dword [ebp - 0x68]
inc ecx
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov eax, dword [ebp - 8]
call fcn.005d4358
cmp byte [ebp - 0x2a9b], 0
je 0x5e4071
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0xc8]
push eax
lea eax, [ebp - 0x2aac]
push eax
mov ecx, dword [ebp - 0x68]
inc ecx
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov eax, dword [ebp - 8]
call fcn.005d4358
cmp byte [ebp - 0x2aa8], 0
je 0x5e4071
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0x68]
mov dx, word [eax + edx*2 + 2]
mov eax, dword [ebp - 4]
call fcn.0046cea4
test al, al
jne 0x5e4071
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0x68]
mov ax, word [eax + edx*2 + 2]
sub ax, 0x22
je 0x5e3fc5
sub ax, 5
jne 0x5e3fde
push ebp
mov eax, dword [ebp - 0x68]
inc eax
mov edx, dword [ebp - 0xc8]
call fcn.005e2b68
pop ecx
test al, al
je 0x5e4071
call fcn.00656518
mov dword [ebp - 0x28], eax
mov edx, 0xa0
mov eax, dword [ebp - 0x28]
call fcn.00656684
push ebp
mov edx, dword [ebp - 0x68]
inc edx
mov eax, dword [ebp - 0x68]
call fcn.005e255c
pop ecx
mov dl, 0x2f
mov eax, dword [ebp - 8]
call fcn.00565be8
mov eax, dword [ebp - 0x28]
push eax
mov ax, word [0x5e5b00]
push eax
lea ecx, [ebp - 0x2a70]
mov edx, dword [ebp - 0x68]
inc edx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.006561ec
lea eax, [ebp - 0x2a70]
push eax
lea ecx, [ebp - 0x2aa4]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [ebp - 0x68]
call fcn.006561ec
lea edx, [ebp - 0x2aa4]
mov eax, dword [ebp - 8]
pop ecx
call fcn.005d93fc
mov eax, dword [ebp - 8]
call fcn.00565c80
push ebp
mov edx, dword [ebp - 0x68]
inc edx
mov eax, dword [ebp - 0x68]
call fcn.005e25e0
pop ecx
mov eax, dword [ebp - 0x28]
call fcn.004028c0
dec dword [0x6752ac]
jmp case.default.0x5e2e12
mov eax, dword [0x672428]
test byte [eax + 0x2bc], 0x40
je case.default.0x5e2e12
push ebp
lea edx, [ebp - 0x2a88]
lea eax, [ebp - 0x14]
call fcn.005e2620
pop ecx
push esi
push edi
lea esi, [ebp - 0x2a88]
lea edi, [ebp - 0x238]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
lea eax, [ebp - 0x2a88]
push eax
lea ecx, [ebp - 0x238]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
call fcn.0046cc28
push esi
push edi
lea esi, [ebp - 0x2a88]
lea edi, [ebp - 0x238]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp dword [ebp - 0x228], 0
jle case.default.0x5e2e12
push ebp
lea eax, [ebp - 0x238]
call fcn.005e1dc4
pop ecx
test al, al
jne case.default.0x5e2e12
mov eax, 0x675460
mov edx, dword [ebp - 0x14]
call fcn.004038bc
lea eax, [ebp - 0x2ec]
call fcn.005447c4
mov dword [ebp - 0x2a8], 1
push ebp
lea edx, [ebp - 0x2ec]
lea eax, [ebp - 0x238]
call fcn.005e2240
pop ecx
test al, al
je case.default.0x5e2e12
push ebp
mov edx, dword [ebp - 0x234]
add edx, dword [ebp - 0x228]
mov eax, dword [ebp - 0x234]
call fcn.005e255c
pop ecx
push ebp
mov edx, dword [ebp - 0x234]
add edx, dword [ebp - 0x228]
mov eax, dword [ebp - 0x234]
call fcn.005e25e0
pop ecx
jmp case.default.0x5e2e12
mov eax, dword [0x672428]
test byte [eax + 0x2bc], 0x80
je case.default.0x5e2e12
xor edx, edx
mov ax, 0x2f
call fcn.00655004
push ebp
lea edx, [ebp - 0x2a88]
lea eax, [ebp - 0x14]
call fcn.005e2620
pop ecx
push esi
push edi
lea esi, [ebp - 0x2a88]
lea edi, [ebp - 0x238]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov dl, 1
mov ax, 0x2f
call fcn.00655004
mov eax, dword [ebp - 0x14]
call fcn.00403ab8
cmp eax, 3
jne case.default.0x5e2e12
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
sub eax, dword [ebp - 0x234]
sub eax, dword [ebp - 0x228]
sub eax, 2
jae case.default.0x5e2e12
mov eax, dword [ebp - 0x14]
mov ax, word [eax]
add eax, 0xffffffcf
sub ax, 9
jae case.default.0x5e2e12
mov eax, dword [ebp - 0x14]
cmp word [eax + 2], 0x2f
jne case.default.0x5e2e12
mov eax, dword [ebp - 0x14]
mov ax, word [eax + 4]
add eax, 0xffffffcf
sub ax, 9
jae case.default.0x5e2e12
push ebp
mov eax, dword [ebp - 0x14]
call fcn.005e1ae8
pop ecx
test al, al
jne case.default.0x5e2e12
mov eax, 0x675460
mov edx, dword [ebp - 0x14]
call fcn.004038bc
mov dword [ebp - 0x228], 1
lea eax, [ebp - 0x2ec]
call fcn.005447c4
mov dword [ebp - 0x2a8], 1
push ebp
lea edx, [ebp - 0x2ec]
lea eax, [ebp - 0x238]
call fcn.005e2240
pop ecx
mov byte [ebp - 0xa9], al
inc dword [ebp - 0x234]
mov dword [ebp - 0x2e0], 1
xor eax, eax
mov dword [ebp - 0x2a8], eax
push ebp
lea edx, [ebp - 0x2ec]
lea eax, [ebp - 0x238]
call fcn.005e2240
pop ecx
or al, byte [ebp - 0xa9]
mov byte [ebp - 0xa9], al
inc dword [ebp - 0x234]
mov dword [ebp - 0x2e0], 0x80000000
mov dword [ebp - 0x2a8], 2
push ebp
lea edx, [ebp - 0x2ec]
lea eax, [ebp - 0x238]
call fcn.005e2240
pop ecx
or al, byte [ebp - 0xa9]
je case.default.0x5e2e12
mov eax, dword [ebp - 0x234]
sub eax, 2
mov dword [ebp - 0x9c], eax
push ebp
mov edx, dword [ebp - 0x9c]
add edx, 3
mov eax, dword [ebp - 0x9c]
call fcn.005e255c
pop ecx
push ebp
mov edx, dword [ebp - 0x9c]
add edx, 3
mov eax, dword [ebp - 0x9c]
call fcn.005e25e0
pop ecx
jmp case.default.0x5e2e12
mov eax, dword [0x672428]
test byte [eax + 0x2bd], 1
je case.default.0x5e2e12
push ebp
lea edx, [ebp - 0x2a88]
xor eax, eax
call fcn.005e2620
pop ecx
push esi
push edi
lea esi, [ebp - 0x2a88]
lea edi, [ebp - 0x238]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp dword [ebp - 0x228], 0
jle case.default.0x5e2e12
lea ecx, [ebp - 0x2a88]
lea edx, [ebp - 0x238]
mov eax, dword [ebp - 8]
call fcn.005c45a8
push esi
push edi
lea esi, [ebp - 0x2a88]
lea edi, [ebp - 0x238]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp dword [ebp - 0x228], 0
jle case.default.0x5e2e12
lea eax, [ebp - 0x14]
push eax
lea edx, [ebp - 0x238]
mov cl, byte [0x5e5b00]
mov eax, dword [ebp - 8]
call fcn.005c3dd4
push ebp
mov eax, dword [ebp - 0x14]
call fcn.005e1ae8
pop ecx
test al, al
jne case.default.0x5e2e12
push ebp
lea eax, [ebp - 0x238]
call fcn.005e1dc4
pop ecx
test al, al
jne case.default.0x5e2e12
push 0
push 0xd
push 0x5e5b04
lea edx, [ebp - 0x238]
xor ecx, ecx
mov eax, dword [ebp - 8]
call fcn.005ea634
test eax, eax
jne case.default.0x5e2e12
mov eax, 0x675460
mov edx, dword [ebp - 0x14]
call fcn.004038bc
mov dl, 0x11
mov eax, dword [ebp - 8]
call fcn.00565be8
mov eax, dword [ebp - 0x238]
push eax
mov eax, dword [ebp - 0x234]
add eax, dword [ebp - 0x228]
push eax
mov al, byte [0x5e5b1c]
push eax
mov ecx, dword [ebp - 0x234]
mov edx, dword [ebp - 0x238]
mov eax, dword [ebp - 8]
call fcn.005c5e64
mov eax, dword [0x672428]
push esi
push edi
lea esi, [eax + 0x184]
lea edi, [ebp - 0x2ec]
mov ecx, 0x17
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebp - 8]
lea edx, [eax + 0x344]
lea eax, [ebp - 0x2ec]
call fcn.00544658
mov eax, dword [ebp - 8]
push esi
push edi
lea esi, [eax + 0x250]
lea edi, [ebp - 0x268]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x238]
mov dword [eax + 0x250], edx
mov eax, dword [ebp - 0x234]
add eax, dword [ebp - 0x228]
mov edx, dword [ebp - 8]
mov dword [edx + 0x254], eax
lea edx, [ebp - 0x258]
mov cl, 0x58
mov eax, dword [ebp - 8]
call fcn.005e8438
test eax, eax
je 0x5e4531
mov dl, byte [0x5e5b1c]
mov eax, dword [ebp - 8]
call fcn.005c66c8
mov dl, 0x23
mov eax, dword [ebp - 8]
call fcn.00565c34
lea eax, [ebp - 0x2ec]
push eax
mov al, byte [0x5e5b00]
push eax
lea ecx, [ebp - 0x258]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d1e60
mov eax, dword [ebp - 8]
call fcn.00565c80
mov eax, dword [ebp - 8]
push esi
push edi
lea edi, [eax + 0x250]
lea esi, [ebp - 0x268]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
jmp 0x5e4660
lea eax, [ebp - 0x2ab0]
mov edx, dword [0x675460]
call fcn.004034e4
mov eax, dword [ebp - 0x2ab0]
lea ecx, [ebp - 0x2a8c]
mov edx, 4
call fcn.0065c428
mov eax, dword [ebp - 0x2a8c]
mov edx, 0x5e5b28
call fcn.0065bd6c
test eax, eax
jne 0x5e4578
mov byte [ebp - 0xac], 1
jmp 0x5e4615
mov eax, dword [0x675460]
call fcn.0062a2a0
test al, al
jne 0x5e460e
mov dx, 0x40
mov eax, dword [0x675460]
call fcn.0065b694
test eax, eax
jne 0x5e460e
mov byte [ebp - 0xac], 1
mov dword [ebp - 0x9c], 5
mov eax, dword [0x67210c]
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x11c]
mov eax, dword [eax]
call fcn.0040351c
inc eax
push eax
mov eax, dword [ebp - 0x11c]
mov edx, dword [eax]
lea eax, [ebp - 0x2a8c]
mov ecx, 0x5e5b38
call fcn.00403568
mov edx, dword [ebp - 0x2a8c]
mov eax, dword [0x675460]
pop ecx
call fcn.0065bca0
test eax, eax
jne 0x5e45fd
mov byte [ebp - 0xac], 0
jmp 0x5e4615
add dword [ebp - 0x11c], 4
dec dword [ebp - 0x9c]
jne 0x5e45b8
jmp 0x5e4615
mov byte [ebp - 0xac], 0
cmp byte [ebp - 0xac], 0
je 0x5e4633
mov eax, 0x675460
mov ecx, dword [0x675460]
mov edx, 0x5e5b40
call fcn.00403b24
lea eax, [ebp - 0x1c]
push eax
xor ecx, ecx
xor edx, edx
mov eax, dword [0x675460]
call fcn.0054607c
xor ecx, ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
call fcn.005e8af4
mov dl, byte [0x5e5b1c]
mov eax, dword [ebp - 8]
call fcn.005c66c8
mov eax, dword [ebp - 8]
call fcn.00565c80
push ebp
mov edx, dword [ebp - 0x234]
add edx, dword [ebp - 0x228]
mov eax, dword [ebp - 0x234]
call fcn.005e255c
pop ecx
push ebp
mov edx, dword [ebp - 0x234]
mov eax, dword [ebp - 0x234]
call fcn.005e25e0
pop ecx
jmp case.default.0x5e2e12
mov eax, dword [0x672428]
test byte [eax + 0x2bd], 2
je case.default.0x5e2e12
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov edx, dword [edi + 8]
dec edx
cmp eax, edx
jl case.default.0x5e2e12
cmp dword [edi + 0x37], 0
jne case.default.0x5e2e12
push 0
push 0xd
push 0x5e5b04
mov edx, dword [ebp - 0xc]
xor ecx, ecx
mov eax, dword [ebp - 8]
call fcn.005ea634
test eax, eax
jne case.default.0x5e2e12
mov eax, edi
call fcn.00552164
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xcc]
cmp word [eax], 0xa
jne 0x5e49aa
mov eax, dword [ebp - 0xcc]
mov ax, word [eax + 2]
push eax
call sub.user32.dll_IsCharAlphaNumericW
test eax, eax
jne 0x5e4748
mov eax, dword [ebp - 0xcc]
mov ax, word [eax + 2]
sub ax, 9
je 0x5e4730
sub ax, 0x17
jne 0x5e5296
mov eax, dword [ebp - 0xcc]
mov ax, word [eax + 4]
push eax
call sub.user32.dll_IsCharAlphaNumericW
test eax, eax
je 0x5e5296
lea ecx, [ebp - 0x2a70]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
xor edx, edx
call fcn.006561ec
lea edx, [ebp - 0x2a70]
mov eax, dword [ebp - 8]
call fcn.005c7c18
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xd0]
cmp byte [eax + 0x3c], 0
jne 0x5e5296
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax + 0x34]
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x2c]
call fcn.00629410
cmp eax, 0x5a0
jg 0x5e5296
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x30]
call fcn.00629410
cmp eax, 0x5a0
jg 0x5e5296
mov dl, 1
mov eax, dword [0x543cb8]
call fcn.00562420
mov dword [ebp - 0x34], eax
xor eax, eax
call fcn.005046e8
mov eax, dword [0x672428]
mov eax, dword [eax + 0x54]
mov edx, dword [0x672428]
mov edx, dword [edx + 0x2f0]
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + eax*4]
mov eax, dword [ebp - 0x34]
call fcn.00562494
mov eax, dword [ebp - 0x34]
add eax, 0x14
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xd4]
mov edx, dword [ebp - 0x4c]
mov dword [eax + 8], edx
mov eax, dword [ebp - 0xd4]
mov dword [eax + 0x10], 0x80000000
mov eax, dword [ebp - 0xd4]
mov byte [eax + 0x91], 0
mov eax, dword [ebp - 0xcc]
mov ax, word [eax + 2]
sub ax, 9
je 0x5e484f
sub ax, 0x17
je 0x5e484f
xor edx, edx
jmp 0x5e4851
mov dl, 1
and edx, 0x7f
inc edx
lea ecx, [ebp - 0x30]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.006561ec
lea eax, [ebp - 0x30]
push eax
mov ax, word [0x5e5afc]
push eax
lea ecx, [ebp - 0x2a70]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
xor edx, edx
call fcn.006561ec
lea ecx, [ebp - 0x2a70]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d8f94
mov byte [ebp - 0xab], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x5fc]
mov eax, dword [eax + 0x18]
dec eax
cmp eax, 0
jl 0x5e491c
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x5fc]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x6c]
mov eax, dword [eax + edx*4]
mov cl, byte [0x5e5b00]
mov edx, dword [ebp - 0x34]
call fcn.00562548
test al, al
je 0x5e4913
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x5fc]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x6c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 8]
call fcn.005f228c
test al, al
jne 0x5e4913
mov eax, dword [ebp - 0x34]
call fcn.004028c0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x5fc]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x6c]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x34], eax
mov byte [ebp - 0xab], 1
jmp 0x5e491c
dec dword [ebp - 0x6c]
cmp dword [ebp - 0x6c], 0xffffffff
jne 0x5e48ab
cmp byte [ebp - 0xab], 0
jne 0x5e4936
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x5fc]
mov edx, dword [ebp - 0x34]
call fcn.00656c78
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x2c]
sub dword [eax + 4], edx
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
push esi
push edi
mov esi, eax
lea edi, [edx + 0x250]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 8]
call fcn.005f24e4
test byte [ebp + 0xc], 2
je 0x5e498e
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
inc eax
mov edx, dword [ebp - 8]
mov dword [edx + 0x250], eax
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x254], edx
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 8]
call fcn.005f24e4
push ebp
mov edx, dword [ebp - 0x2c]
xor eax, eax
call fcn.005e255c
pop ecx
push ebp
xor edx, edx
xor eax, eax
call fcn.005e25e0
pop ecx
jmp 0x5e5296
mov dl, 0x59
mov eax, dword [ebp - 8]
call fcn.00565be8
lea ecx, [ebp - 0x2ac0]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, 1
call fcn.00543f80
lea edx, [ebp - 0x2ac0]
lea ecx, [ebp - 0x2ec]
mov eax, dword [ebp - 8]
call fcn.005c8438
mov eax, dword [ebp - 8]
call fcn.00565c80
push 0
push 0x39
push 0x5e5b04
lea edx, [ebp - 0x2ac0]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.00543f88
lea edx, [ebp - 0x2ac0]
xor ecx, ecx
mov eax, dword [ebp - 8]
call fcn.005ea634
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0
je 0x5e4a45
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 0x3c]
call fcn.00546950
cmp dword [ebp - 0x20], 0
je 0x5e4a45
mov eax, dword [0x67256c]
mov eax, dword [eax]
mov ecx, 1
mov edx, dword [ebp - 0x20]
call fcn.0062d6a4
mov dword [ebp - 0x2ec], eax
mov eax, dword [ebp - 0x2ec]
mov al, byte [eax + 0x11]
mov byte [ebp - 0xaa], al
cmp byte [ebp - 0xaa], 0
jne 0x5e4a9c
mov eax, dword [ebp - 0xcc]
mov ax, word [eax]
sub ax, 0x2a
je 0x5e4a9c
sub ax, 0x14
je 0x5e4a9c
mov eax, dword [ebp - 0xcc]
cmp word [eax], 0x2022
je 0x5e4a9c
mov eax, dword [ebp - 0xcc]
mov dx, word [eax]
mov eax, dword [0x672020]
mov eax, dword [eax]
call fcn.006570e4
test al, al
je 0x5e4d8f
mov eax, dword [ebp - 0xcc]
mov ax, word [eax + 2]
sub ax, 9
je 0x5e4ab6
sub ax, 0x17
jne 0x5e4d8f
mov eax, dword [ebp - 0xcc]
cmp word [eax + 4], 0x20
jbe 0x5e4d8f
push ebp
mov eax, dword [ebp - 0xcc]
call fcn.005e2cb8
pop ecx
test al, al
jne 0x5e4d8f
mov dl, 1
mov eax, dword [0x543cb8]
call fcn.00562420
mov dword [ebp - 0x34], eax
xor eax, eax
call fcn.005046e8
mov eax, dword [0x672428]
mov eax, dword [eax + 0x54]
mov edx, dword [0x672428]
mov edx, dword [edx + 0x2f0]
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + eax*4]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x34]
call fcn.005624c8
mov eax, dword [ebp - 0x34]
add eax, 0x14
mov dword [ebp - 0xd8], eax
cmp byte [ebp - 0xaa], 0
je 0x5e4bb4
mov dword [ebp - 0x74], 0x16
lea eax, [ebp - 0x294]
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x120], 0x674f7c
mov eax, dword [ebp - 0x11c]
mov eax, dword [eax]
mov edx, dword [ebp - 0x120]
cmp eax, dword [edx]
je 0x5e4b74
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x11c]
mov ecx, dword [ecx]
mov dword [eax + edx*4 + 0xc], ecx
dec dword [ebp - 0x74]
sub dword [ebp - 0x120], 4
sub dword [ebp - 0x11c], 4
cmp dword [ebp - 0x74], 0xffffffff
jne 0x5e4b4d
mov eax, dword [ebp - 0xd8]
add eax, 0x94
mov edx, dword [ebp - 0xcc]
mov dx, word [edx]
call fcn.00403990
mov eax, dword [ebp - 0xd8]
xor edx, edx
mov dword [eax + 8], edx
jmp 0x5e4c3c
mov eax, dword [ebp - 0xcc]
mov dx, word [eax]
mov eax, dword [0x672020]
mov eax, dword [eax]
call fcn.006570e4
test al, al
je 0x5e4c00
mov eax, dword [ebp - 0xd8]
add eax, 0x94
mov edx, dword [ebp - 0xcc]
mov dx, word [edx]
call fcn.00403990
mov eax, dword [ebp - 0xd8]
mov dword [eax + 0xc], 0x80000000
mov eax, dword [ebp - 0xd8]
xor edx, edx
mov dword [eax + 8], edx
jmp 0x5e4c3c
mov eax, dword [ebp - 0xcc]
cmp word [eax], 0x3e
jne 0x5e4c3c
mov eax, dword [ebp - 0xd8]
add eax, 0x94
mov edx, 0x5e5b54
call fcn.004038bc
mov eax, dword [0x672628]
mov eax, dword [eax]
mov edx, dword [ebp - 0xd8]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 0xd8]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [ebp - 0xd8]
mov byte [eax + 0x91], 0
mov byte [ebp - 0xab], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x5fc]
mov eax, dword [eax + 0x18]
dec eax
cmp eax, 0
jl 0x5e4cf5
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x5fc]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x6c]
mov eax, dword [eax + edx*4]
mov cl, byte [0x5e5b00]
mov edx, dword [ebp - 0x34]
call fcn.00562548
test al, al
je 0x5e4ce8
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x5fc]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x6c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 8]
call fcn.005f228c
test al, al
jne 0x5e4ce8
mov eax, dword [ebp - 0x34]
cmp dword [eax + 0x1c], 0
je 0x5e4cc2
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 8]
call fcn.005fd17c
mov eax, dword [ebp - 0x34]
call fcn.004028c0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x5fc]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x6c]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x34], eax
mov byte [ebp - 0xab], 1
jmp 0x5e4cf5
dec dword [ebp - 0x6c]
cmp dword [ebp - 0x6c], 0xffffffff
jne 0x5e4c69
cmp byte [ebp - 0xab], 0
jne 0x5e4d0f
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x5fc]
mov edx, dword [ebp - 0x34]
call fcn.00656c78
mov eax, dword [edi + 8]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
push esi
push edi
mov esi, eax
lea edi, [edx + 0x250]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 8]
call fcn.005f24e4
mov eax, dword [ebp - 0x70]
sub eax, dword [edi + 8]
mov edx, dword [ebp - 0xc]
sub dword [edx + 4], eax
test byte [ebp + 0xc], 2
je 0x5e4d70
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
inc eax
mov edx, dword [ebp - 8]
mov dword [edx + 0x250], eax
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x254], edx
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 8]
call fcn.005f24e4
push ebp
mov edx, dword [ebp - 0x70]
sub edx, dword [edi + 8]
xor eax, eax
call fcn.005e255c
pop ecx
push ebp
xor edx, edx
xor eax, eax
call fcn.005e25e0
pop ecx
jmp 0x5e5296
mov dword [ebp - 0x78], 0xffffffff
mov eax, dword [edi + 8]
dec eax
test eax, eax
jl 0x5e4dcb
inc eax
mov dword [ebp - 0xdc], eax
xor eax, eax
mov edx, dword [ebp - 0xcc]
mov dx, word [edx + eax*2]
sub dx, 9
je 0x5e4dbd
sub dx, 0x17
jne 0x5e4dc2
mov dword [ebp - 0x78], eax
jmp 0x5e4dcb
inc eax
dec dword [ebp - 0xdc]
jne 0x5e4da7
cmp dword [ebp - 0x78], 0
jl 0x5e5296
cmp dword [ebp - 0x78], 0xc
jg 0x5e5296
lea eax, [ebp - 0x24]
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0xcc]
call fcn.00403964
call fcn.00656a20
mov dword [ebp - 0x40], eax
call fcn.00656a20
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
push eax
lea edx, [ebp - 0x18]
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x24]
call fcn.0054708c
test al, al
je 0x5e5286
xor eax, eax
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov eax, dword [ebp - 8]
call fcn.0056442c
mov edx, eax
mov eax, dword [ebp - 8]
call fcn.00564468
mov dword [ebp - 0x84], eax
call fcn.00656a20
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
dec eax
mov edx, dword [ebp - 0x84]
sub edx, eax
jg 0x5e4fa7
dec edx
mov dword [ebp - 0xdc], edx
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xa8]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x7c]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xe0]
cmp dword [eax + 0x37], 0
je 0x5e4f98
mov eax, dword [ebp - 0xe0]
mov edx, dword [eax + 0x37]
mov eax, dword [ebp - 0x3c]
call fcn.00656dac
test al, al
jne 0x5e4f98
mov eax, dword [ebp - 0xe0]
mov edx, dword [eax + 0x37]
mov eax, dword [ebp - 0x3c]
call fcn.00656c78
mov eax, dword [ebp - 0xe0]
mov edx, dword [eax + 0x37]
mov eax, dword [ebp - 8]
call fcn.005f228c
test al, al
jne 0x5e4f98
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 0x37]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0xe4]
cmp byte [eax + 0xb], 0
je 0x5e4f98
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x40]
call fcn.00656dac
test al, al
je 0x5e4f98
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0xa8]
mov edx, dword [ebp - 0x18]
call fcn.00403bd0
jne 0x5e4f98
xor eax, eax
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x7c]
cmp eax, 0
jl 0x5e4f5d
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xa8]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x80]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x37]
mov edx, dword [ebp - 0xe0]
cmp eax, dword [edx + 0x37]
jne 0x5e4f54
inc dword [ebp - 0x88]
dec dword [ebp - 0x80]
cmp dword [ebp - 0x80], 0xffffffff
jne 0x5e4f2e
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x40]
call fcn.00656d48
mov edx, dword [ebp - 0x44]
mov edx, dword [edx + 0x1c]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0xe4]
mov edx, dword [edx + 0x14]
add edx, dword [ebp - 0x88]
cmp eax, edx
jne 0x5e4f98
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 0x37]
mov dword [ebp - 0x38], eax
jmp 0x5e4fa7
dec dword [ebp - 0x7c]
inc dword [ebp - 0xdc]
jne 0x5e4e62
mov eax, dword [ebp - 0x3c]
call fcn.00656ff0
cmp dword [ebp - 0x38], 0
je 0x5e4fc0
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x34], eax
jmp 0x5e5205
xor eax, eax
mov dword [ebp - 0x34], eax
mov edx, 1
mov eax, dword [ebp - 0x44]
call fcn.00656d48
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0xffffffff
jne 0x5e4ff1
xor edx, edx
mov eax, dword [ebp - 0x44]
call fcn.00656d48
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0xffffffff
je 0x5e5205
mov dl, 1
mov eax, dword [0x543cb8]
call fcn.00562420
mov dword [ebp - 0x34], eax
xor eax, eax
call fcn.005046e8
mov byte [ebp - 0xab], 0
mov eax, dword [0x672428]
mov eax, dword [eax + 0x58]
mov edx, dword [0x672428]
mov edx, dword [edx + 0x2f4]
mov edx, dword [edx + 0x1c]
mov eax, dword [edx + eax*4]
add eax, 0x14
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x8c]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 0xe8]
cmp eax, dword [edx + 4]
jne 0x5e5097
mov eax, dword [ebp - 0xe8]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x18]
call fcn.00403bd0
jne 0x5e5097
mov eax, dword [0x672428]
mov eax, dword [eax + 0x58]
mov edx, dword [0x672428]
mov edx, dword [edx + 0x2f4]
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + eax*4]
mov eax, dword [ebp - 0x34]
call fcn.00562494
mov byte [ebp - 0xab], 1
cmp byte [ebp - 0xab], 0
jne 0x5e517b
xor eax, eax
mov dword [ebp - 0x98], eax
cmp byte [ebp - 0xab], 0
jne 0x5e517b
mov eax, dword [0x672428]
mov eax, dword [eax + 0x2f4]
mov eax, dword [eax + 0x18]
dec eax
test eax, eax
jl 0x5e5168
inc eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0x6c], 0
mov eax, dword [0x672428]
mov eax, dword [eax + 0x2f4]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x6c]
mov eax, dword [eax + edx*4]
add eax, 0x14
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x8c]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 0xec]
cmp eax, dword [edx + 4]
jne 0x5e5159
cmp dword [ebp - 0x98], 1
je 0x5e5134
mov eax, dword [ebp - 0xec]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x18]
call fcn.00403bd0
jne 0x5e5159
mov eax, dword [0x672428]
mov eax, dword [eax + 0x2f4]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x6c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x34]
call fcn.00562494
mov byte [ebp - 0xab], 1
jmp 0x5e5168
inc dword [ebp - 0x6c]
dec dword [ebp - 0xdc]
jne 0x5e50de
inc dword [ebp - 0x98]
cmp dword [ebp - 0x98], 2
jne 0x5e50ac
cmp byte [ebp - 0xab], 0
jne 0x5e51a6
mov eax, dword [0x672428]
mov eax, dword [eax + 0x58]
mov edx, dword [0x672428]
mov edx, dword [edx + 0x2f4]
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + eax*4]
mov eax, dword [ebp - 0x34]
call fcn.00562494
mov eax, dword [ebp - 0x34]
add eax, 0x14
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x8c]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 0xf0]
mov dword [edx], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x8c]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 0xf0]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0xf0]
add eax, 0x94
mov edx, dword [ebp - 0x18]
call fcn.004038bc
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x5fc]
mov edx, dword [ebp - 0x34]
call fcn.00656c78
cmp dword [ebp - 0x34], 0
je 0x5e5286
mov eax, dword [edi + 8]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
push esi
push edi
mov esi, eax
lea edi, [edx + 0x250]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 8]
call fcn.005f24e4
mov eax, dword [ebp - 0x70]
sub eax, dword [edi + 8]
mov edx, dword [ebp - 0xc]
sub dword [edx + 4], eax
test byte [ebp + 0xc], 2
je 0x5e526c
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
inc eax
mov edx, dword [ebp - 8]
mov dword [edx + 0x250], eax
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x254], edx
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 8]
call fcn.005f24e4
push ebp
mov edx, dword [ebp - 0x70]
sub edx, dword [edi + 8]
xor eax, eax
call fcn.005e255c
pop ecx
push ebp
xor edx, edx
xor eax, eax
call fcn.005e25e0
pop ecx
mov eax, dword [ebp - 0x44]
call fcn.00656ff0
mov eax, dword [ebp - 0x40]
call fcn.00656ff0
dec dword [0x6752ac]
jmp case.default.0x5e2e12
mov eax, dword [ebp - 4]
cmp dword [eax + 0x28], 0xffffffff
je case.default.0x5e2e12
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
lea eax, [eax + eax*4]
mov edx, dword [0x67236c]
lea eax, [edx + eax*4]
mov dword [ebp - 0xf4], eax
xor eax, eax
mov al, bl
sub eax, 0xc
mov edx, dword [ebp - 0xf4]
cmp eax, dword [edx + 4]
jge case.default.0x5e2e12
xor ecx, ecx
mov cl, bl
sub ecx, 0xc
mov eax, 1
shl eax, cl
mov edx, dword [ebp - 4]
and eax, dword [edx + 0x2c]
je case.default.0x5e2e12
push ebp
mov eax, ebx
call fcn.005e2b20
pop ecx
jmp case.default.0x5e2e12
test byte [ebp + 0xc], 2
je case.default.0x5e2e12
mov eax, dword [0x672428]
test byte [eax + 0x2bd], 8
je case.default.0x5e2e12
cmp byte [edi + 0x3c], 0
jne case.default.0x5e2e12
cmp dword [edi + 8], 3
jle case.default.0x5e2e12
mov eax, edi
call fcn.00552164
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xf8]
mov ax, word [eax]
sub ax, 0x2b
je 0x5e535a
sub ax, 0x51
jne 0x5e58d4
lea eax, [ebp - 0x2a44]
mov edx, 0x2758
call fcn.00660d08
mov dword [ebp - 0x9c], 1
jmp 0x5e53f9
imul eax, dword [ebp - 0x296c], 0x27
lea eax, [ebp + eax*4 - 0x2968]
jmp 0x5e5395
inc dword [ebp - 0x9c]
inc dword [eax + 0x94]
mov edx, dword [ebp - 0x9c]
cmp edx, dword [edi + 8]
jge 0x5e53b3
mov edx, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x9c]
cmp word [edx + ecx*2], 9
je 0x5e5389
cmp dword [eax + 0x94], 0
je 0x5e53e3
mov eax, dword [ebp - 0x9c]
cmp eax, dword [edi + 8]
je 0x5e53e3
mov eax, dword [ebp - 0xf8]
mov edx, dword [ebp - 0x9c]
mov ax, word [eax + edx*2]
sub ax, 0x2b
je 0x5e53ed
sub ax, 0x51
je 0x5e53ed
xor eax, eax
mov dword [ebp - 0x296c], eax
jmp 0x5e5412
inc dword [ebp - 0x9c]
inc dword [ebp - 0x296c]
mov eax, dword [edi + 8]
dec eax
cmp eax, dword [ebp - 0x9c]
jle 0x5e5412
cmp dword [ebp - 0x296c], 0x3f
jl 0x5e5379
cmp dword [ebp - 0x296c], 0
jle 0x5e58d4
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0xa8]
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + eax*4]
mov eax, dword [0x672818]
mov eax, dword [eax]
call fcn.0062e56c
xor eax, eax
mov dword [ebp - 0x90], eax
mov eax, dword [0x672818]
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0x2a30], 0x6c
mov dword [ebp - 0x2a28], 0x6c
mov dword [ebp - 0x2978], 0xff000000
movsx eax, word [edi + 0x1e]
movsx edx, word [edi + 0x1c]
add eax, edx
mov dword [ebp - 0x2a40], eax
mov eax, dword [ebp - 0x296c]
dec eax
test eax, eax
jl 0x5e5664
inc eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0x9c], 0
lea eax, [ebp - 0x2968]
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0x100]
mov dword [eax + 0x18], 0xa
mov eax, dword [ebp - 0x100]
mov dword [eax + 0x1c], 1
mov eax, dword [ebp - 0x100]
mov dword [eax + 0x20], 0xff000000
mov eax, dword [ebp - 0x100]
mov edx, dword [ebp - 0x100]
push esi
push edi
lea esi, [eax + 0x18]
lea edi, [edx + 0x34]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebp - 0x100]
mov edx, dword [ebp - 0x100]
push esi
push edi
lea esi, [eax + 0x18]
lea edi, [edx + 0x50]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebp - 0x100]
mov edx, dword [ebp - 0x100]
push esi
push edi
lea esi, [eax + 0x18]
lea edi, [edx + 0x6c]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebp - 0x100]
add eax, 4
mov edx, 4
call fcn.00629af0
mov eax, dword [ebp - 0x100]
mov dword [eax + 0x88], 0xff000000
cmp dword [ebp - 0x9c], 0
jne 0x5e5575
mov eax, dword [ebp - 0x2a40]
mov dword [ebp - 0x94], eax
jmp 0x5e55e6
mov eax, dword [ebp - 0x120]
mov eax, dword [eax - 0x9c]
mov dword [ebp - 0x94], eax
jmp 0x5e55e6
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x90]
mov eax, dword [eax + edx*4]
lea edx, [ebp - 0x108]
call fcn.0062e2c4
cmp byte [ebp - 0x104], 4
je 0x5e55bd
mov eax, dword [ebp - 0x108]
cmp eax, dword [ebp - 0x94]
jg 0x5e55c5
inc dword [ebp - 0x90]
jmp 0x5e55e6
mov eax, dword [ebp - 0x100]
dec dword [eax + 0x94]
mov eax, dword [ebp - 0x100]
cmp dword [eax + 0x94], 0
je 0x5e55f7
inc dword [ebp - 0x90]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x18]
cmp eax, dword [ebp - 0x90]
jg 0x5e5589
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x18]
cmp eax, dword [ebp - 0x90]
jle 0x5e5635
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x90]
mov eax, dword [eax + edx*4]
lea edx, [ebp - 0x2a70]
call fcn.0062e2c4
mov eax, dword [ebp - 0x2a70]
mov edx, dword [ebp - 0x100]
mov dword [edx], eax
jmp 0x5e5648
mov eax, dword [ebp - 0x94]
add eax, 0xb4
mov edx, dword [ebp - 0x100]
mov dword [edx], eax
inc dword [ebp - 0x9c]
add dword [ebp - 0x120], 0x9c
dec dword [ebp - 0xdc]
jne 0x5e54b1
lea ecx, [ebp - 0x2a70]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [edi + 8]
call fcn.006561ec
lea eax, [ebp - 0x2a70]
push eax
mov ax, word [0x5e5b00]
push eax
lea ecx, [ebp - 0x2aa4]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
xor edx, edx
call fcn.006561ec
lea ecx, [ebp - 0x2aa4]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d8f94
xor eax, eax
call fcn.00547980
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0x10c]
cmp dword [eax + 0x18], 0
jle 0x5e5829
mov eax, dword [ebp - 0x10c]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x110]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x2a38], eax
mov eax, dword [ebp - 0x110]
push esi
push edi
lea esi, [eax + 0x14]
lea edi, [ebp - 0x2a30]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebp - 0x296c]
dec eax
cmp eax, 0
jl 0x5e581e
mov dword [ebp - 0x9c], eax
imul eax, dword [ebp - 0x9c], 0x27
lea eax, [ebp + eax*4 - 0x2968]
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x9c], 0
jne 0x5e573b
xor eax, eax
mov dword [ebp - 0xa0], eax
jmp 0x5e5784
mov eax, dword [ebp - 0x296c]
dec eax
cmp eax, dword [ebp - 0x9c]
jne 0x5e575f
mov eax, dword [ebp - 0x110]
mov eax, dword [eax + 0xd8]
dec eax
mov dword [ebp - 0xa0], eax
jmp 0x5e5784
mov eax, dword [ebp - 0x110]
mov edx, dword [eax + 0xd8]
sub edx, 2
mov eax, dword [ebp - 0x9c]
call fcn.0065b28c
call fcn.0065b29c
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0x54], eax
imul eax, dword [ebp - 0xa0], 0x27
mov edx, dword [ebp - 0x110]
lea eax, [edx + eax*4 + 0xdc]
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x114]
mov edx, dword [ebp - 0x54]
push esi
push edi
lea esi, [eax + 4]
lea edi, [edx + 4]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebp - 0x114]
mov al, byte [eax + 0x15]
mov edx, dword [ebp - 0x54]
mov byte [edx + 0x15], al
imul eax, dword [ebp - 0xa0], 0x27
mov edx, dword [ebp - 0x110]
lea eax, [edx + eax*4 + 0xdc]
mov edx, dword [ebp - 0x54]
call fcn.005475a4
mov eax, dword [ebp - 0x114]
mov eax, dword [eax + 0x88]
mov edx, dword [ebp - 0x54]
mov dword [edx + 0x88], eax
dec dword [ebp - 0x9c]
sub dword [ebp - 0x120], 0x9c
cmp dword [ebp - 0x9c], 0xffffffff
jne 0x5e5728
mov eax, dword [ebp - 0x10c]
call fcn.00656fa4
mov eax, dword [ebp - 0x10c]
call fcn.00656ff0
call fcn.00656a20
mov dword [ebp - 0x48], eax
lea edx, [ebp - 0x2a44]
mov eax, dword [ebp - 0x48]
call fcn.00656c78
mov eax, dword [ebp - 0x48]
push eax
push 1
mov ecx, dword [ebp - 0x296c]
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.005f434c
mov eax, dword [ebp - 0x48]
call fcn.00656ff0
lea ecx, [ebp - 0x258]
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov eax, dword [ebp - 8]
call fcn.005f4ebc
push esi
push edi
mov esi, 0x6751d0
lea edi, [ebp - 0x290]
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov word [ebp - 0x28e], 0
mov word [ebp - 0x290], 0
mov word [ebp - 0x288], 0
mov byte [ebp - 0x286], 0
lea eax, [ebp - 0x290]
push eax
lea ecx, [ebp - 0x258]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d1b6c
mov byte [0x675456], 1
dec dword [0x6752ac]
jmp case.default.0x5e2e12
mov eax, dword [0x672428]
test byte [eax + 0x2bd], 0x10
je case.default.0x5e2e12
mov eax, edi
call fcn.00552164
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x118]
mov dx, word [eax]
mov eax, dword [0x672020]
mov eax, dword [eax]
call fcn.006570e4
test al, al
je 0x5e5a7a
mov eax, dword [ebp - 0x118]
mov dx, word [eax + 2]
mov eax, dword [0x672020]
mov eax, dword [eax]
call fcn.006570e4
test al, al
je 0x5e5a7a
mov eax, dword [ebp - 0x118]
mov dx, word [eax + 4]
mov eax, dword [0x672020]
mov eax, dword [eax]
call fcn.006570e4
test al, al
jne 0x5e596d
cmp dword [edi + 8], 3
jne 0x5e5a7a
mov eax, dword [ebp - 0x118]
cmp word [eax], 0x2d
je 0x5e5a7a
lea ecx, [ebp - 0x2a70]
mov edx, dword [edi + 8]
dec edx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.006561ec
lea eax, [ebp - 0x2a70]
push eax
mov ax, word [0x5e5b00]
push eax
lea ecx, [ebp - 0x2aa4]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
xor edx, edx
call fcn.006561ec
lea ecx, [ebp - 0x2aa4]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d8f94
mov dl, 1
mov eax, dword [0x542bdc]
call fcn.0055fd98
mov dword [ebp - 0x58], eax
mov edx, dword [0x672428]
mov edx, dword [edx + 0x94]
lea eax, [ebp - 0x2a8c]
mov ecx, 0x5e5b60
call fcn.00403568
mov edx, dword [ebp - 0x2a8c]
mov eax, dword [ebp - 0x58]
call fcn.005603f4
mov eax, dword [ebp - 0x58]
call fcn.004b2de0
mov byte [ebp - 0x2a64], 2
mov dword [ebp - 0x2a60], 0xd20
call fcn.00656518
mov dword [ebp - 0x2a50], eax
lea edx, [ebp - 0x2ab0]
mov eax, dword [ebp - 0x58]
call fcn.005604e0
mov edx, dword [ebp - 0x2ab0]
lea ecx, [ebp - 0x2a8c]
mov eax, 0x5e5b80
call fcn.0065d910
mov edx, dword [ebp - 0x2a8c]
mov eax, dword [ebp - 0x2a50]
call fcn.0065671c
call fcn.005397ec
or word [eax + 0x54], 0x80
lea edx, [ebp - 0x2a64]
mov eax, dword [ebp - 8]
call fcn.005e12b0
call fcn.005397ec
and word [eax + 0x54], 0xff7f
mov eax, dword [ebp - 0x2a50]
call fcn.004028c0
mov eax, dword [ebp - 0x58]
call fcn.004028c0
dec dword [0x6752ac]
inc ebx
inc esi
cmp bl, 0x11
jne 0x5e2de9
mov eax, dword [0x672428]
mov edx, dword [ebp - 0x5c]
mov dword [eax + 0x17c], edx
call fcn.0065b624
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5e5af2
lea eax, [ebp - 0x2ab0]
call fcn.00403274
lea eax, [ebp - 0x2a8c]
call fcn.00403274
lea eax, [ebp - 0x2a68]
call fcn.00403880
lea eax, [ebp - 0x2a64]
mov edx, dword [0x543d24]
call fcn.00403f10
lea eax, [ebp - 0x24]
mov edx, 5
call fcn.00403898
ret