Function at 0x5de7fc
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 2
add esp, 0xfffff004
push eax
dec eax
jne 0x5de805
mov eax, dword [ebp - 4]
add esp, 0xfffff540
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x2a98], ebx
mov dword [ebp - 0x2ab4], ebx
mov dword [ebp - 0x2a74], 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 - 0x2a70]
mov edx, dword [0x543790]
call fcn.00403e38
xor eax, eax
push ebp
push 0x5e1671
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
call fcn.006538a0
mov eax, dword [0x66ebb0]
mov eax, dword [eax]
mov dword [ebp - 0x5c], eax
mov eax, dword [0x66ebb0]
or dword [eax], 0x100
mov eax, dword [0x66e8a0]
mov eax, dword [eax]
mov edx, dword [ebp + 8]
call fcn.004827d0
mov dword [ebp - 4], eax
mov eax, 0x67358c
call fcn.00403880
mov byte [0x673582], 0
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0xb0]
mov edx, dword [edx + 0x1c]
mov edi, dword [edx + eax*4]
xor ebx, ebx
mov esi, 0x673544
mov eax, ebx
cmp al, 0x1f
ja 0x5de8ce
and eax, 0x7f
bt dword [ebp - 0x10], eax
jae case.default.0x5de8ea
cmp byte [esi], 2
je case.default.0x5de8ea
xor eax, eax
mov al, bl
cmp eax, 0x10
ja case.default.0x5de8ea
jmp dword [eax*4 + 0x5de8f1]
mov eax, dword [0x66eec8]
test byte [eax], 0x20
je case.default.0x5de8ea
mov al, 1
call fcn.0062df9c
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
mov dword [ebp - 0x244], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x240], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
add eax, 2
sub dword [ebp - 0x240], eax
cmp dword [ebp - 0x240], 0
jge 0x5de97e
xor eax, eax
mov dword [ebp - 0x240], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
sub eax, dword [ebp - 0x240]
mov dword [ebp - 0x234], eax
push ebp
lea eax, [ebp - 0x244]
call fcn.005dd898
pop ecx
cmp dword [0x673558], 0
jl 0x5debf5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
mov edx, dword [0x67355c]
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0
jl 0x5de9e3
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 0x5debf5
push ebp
lea eax, [ebp - 0x244]
call fcn.005dd878
pop ecx
test al, al
jne 0x5debf5
push ebp
mov edx, dword [0x673570]
mov eax, dword [0x67356c]
call fcn.005de01c
pop ecx
mov eax, dword [0x67356c]
mov dword [ebp - 0x240], eax
mov eax, dword [0x673570]
sub eax, dword [0x67356c]
mov dword [ebp - 0x234], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 0xc
jne 0x5deaf6
mov eax, dword [ebp - 4]
test byte [eax + 0x30], 4
je 0x5deaf6
mov eax, dword [0x673564]
call fcn.00403aa8
cmp eax, 1
jl 0x5deaf6
mov dword [ebp - 0xa0], eax
mov eax, dword [0x673564]
mov edx, dword [ebp - 0xa0]
cmp word [eax + edx*2 - 2], 0xa0
jne 0x5deae3
cmp dword [ebp - 0xa0], 1
jle 0x5deaa9
mov eax, dword [0x673564]
mov edx, dword [ebp - 0xa0]
cmp word [eax + edx*2 - 4], 0xab
jne 0x5deaa9
mov dx, 0xab
mov eax, dword [ebp - 4]
call fcn.004813cc
mov edx, dword [0x673564]
mov ecx, dword [ebp - 0xa0]
mov word [edx + ecx*2 - 2], ax
jmp 0x5deae3
mov eax, dword [0x673564]
call fcn.00403aa8
cmp eax, dword [ebp - 0xa0]
jle 0x5deae3
mov eax, dword [0x673564]
mov edx, dword [ebp - 0xa0]
mov dx, word [eax + edx*2]
mov eax, dword [ebp - 4]
call fcn.004813cc
mov edx, dword [0x673564]
mov ecx, dword [ebp - 0xa0]
mov word [edx + ecx*2 - 2], ax
dec dword [ebp - 0xa0]
cmp dword [ebp - 0xa0], 0
jne 0x5dea59
lea eax, [ebp - 0x2a74]
push eax
lea edx, [ebp - 0x244]
mov cl, byte [0x5e1684]
mov eax, dword [ebp - 8]
call fcn.005c0d9c
mov edx, dword [ebp - 0x2a74]
mov eax, dword [0x673564]
call fcn.00403bc0
je 0x5deb6c
mov eax, dword [0x673564]
call fcn.0064e190
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [0x5e1688]
push eax
lea ecx, [ebp - 0x2a7c]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [0x673570]
call fcn.0064d54c
lea ecx, [ebp - 0x2a7c]
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005d5274
mov eax, dword [ebp - 0x28]
call fcn.004028c0
cmp dword [0x673584], 0
jl 0x5debb9
mov eax, dword [0x673584]
mov dword [ebp - 0x240], eax
mov eax, dword [0x673588]
sub eax, dword [0x673584]
mov dword [ebp - 0x234], eax
lea eax, [ebp - 0x2f8]
call fcn.00544200
mov dword [ebp - 0x2b4], 1
push ebp
lea edx, [ebp - 0x2f8]
lea eax, [ebp - 0x244]
call fcn.005ddd00
pop ecx
push ebp
mov eax, dword [0x673564]
call fcn.00403aa8
mov edx, eax
add edx, dword [0x67356c]
mov eax, dword [0x67356c]
call fcn.005de0a0
pop ecx
mov eax, dword [0x673564]
call fcn.00403aa8
mov edx, dword [0x673570]
sub edx, dword [0x67356c]
sub eax, edx
mov edx, dword [ebp - 0xc]
add dword [edx + 4], eax
mov al, 2
call fcn.0062df9c
jmp case.default.0x5de8ea
mov eax, dword [0x66eec8]
test byte [eax], 2
je case.default.0x5de8ea
push ebp
lea edx, [ebp - 0x2a94]
lea eax, [ebp - 0x14]
call fcn.005de0e0
pop ecx
push esi
push edi
lea esi, [ebp - 0x2a94]
lea edi, [ebp - 0x244]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
push ebp
mov eax, dword [ebp - 0x14]
call fcn.005dd77c
pop ecx
test al, al
je case.default.0x5de8ea
push ebp
lea eax, [ebp - 0x244]
call fcn.005dd878
pop ecx
test al, al
jne case.default.0x5de8ea
lea edx, [ebp - 0x244]
mov cl, 0xff
mov eax, dword [ebp - 8]
call fcn.005e5efc
test eax, eax
jne case.default.0x5de8ea
mov eax, 0x67358c
mov edx, dword [ebp - 0x14]
call fcn.004038bc
mov eax, dword [ebp - 0x244]
mov dword [ebp - 0x264], eax
mov eax, dword [ebp - 0x240]
mov dword [ebp - 0x260], eax
inc dword [ebp - 0x260]
mov eax, dword [ebp - 0x264]
mov dword [ebp - 0x254], eax
mov eax, dword [ebp - 0x260]
mov dword [ebp - 0x250], eax
inc dword [ebp - 0x250]
push ebp
mov eax, dword [ebp - 0x260]
dec eax
mov edx, dword [ebp - 0x250]
call fcn.005de01c
pop ecx
push 2
mov eax, dword [0x5e1688]
push eax
push 0
lea ecx, [ebp - 0x264]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d7694
push ebp
mov eax, dword [ebp - 0x260]
dec eax
mov edx, dword [ebp - 0x250]
call fcn.005de0a0
pop ecx
jmp case.default.0x5de8ea
mov eax, dword [0x66eec8]
test byte [eax], 8
je case.default.0x5de8ea
lea eax, [ebp - 0x22c]
push eax
call sub.user32.dll_GetKeyboardState
test byte [ebp - 0x218], 1
jne 0x5ded32
test byte [ebp + 0xc], 2
jne case.default.0x5de8ea
push ebp
lea edx, [ebp - 0x2a94]
lea eax, [ebp - 0x14]
call fcn.005de0e0
pop ecx
push esi
push edi
lea esi, [ebp - 0x2a94]
lea edi, [ebp - 0x244]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
push ebp
mov eax, dword [ebp - 0x14]
call fcn.005dd6a4
pop ecx
test al, al
je case.default.0x5de8ea
push ebp
lea eax, [ebp - 0x244]
call fcn.005dd878
pop ecx
test al, al
jne case.default.0x5de8ea
lea edx, [ebp - 0x244]
mov cl, 0xff
mov eax, dword [ebp - 8]
call fcn.005e5efc
test eax, eax
jne case.default.0x5de8ea
mov eax, 0x67358c
mov edx, dword [ebp - 0x14]
call fcn.004038bc
lea edx, [ebp - 0x264]
lea eax, [ebp - 0x244]
call fcn.00543ce4
push ebp
mov edx, dword [ebp - 0x250]
mov eax, dword [ebp - 0x260]
call fcn.005de01c
pop ecx
push 3
mov eax, dword [0x5e1688]
push eax
push 0
lea ecx, [ebp - 0x264]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d7694
push ebp
mov edx, dword [ebp - 0x250]
mov eax, dword [ebp - 0x260]
call fcn.005de0a0
pop ecx
test byte [ebp + 0xc], 2
je case.default.0x5de8ea
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.0x5de8ea
mov eax, dword [0x66eec8]
test byte [eax], 4
je case.default.0x5de8ea
push ebp
lea edx, [ebp - 0x2a94]
lea eax, [ebp - 0x14]
call fcn.005de0e0
pop ecx
push esi
push edi
lea esi, [ebp - 0x2a94]
lea edi, [ebp - 0x244]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp dword [ebp - 0x14], 0
je case.default.0x5de8ea
lea edx, [ebp - 0x244]
mov cl, 0xff
mov eax, dword [ebp - 8]
call fcn.005e5efc
test eax, eax
jne case.default.0x5de8ea
mov eax, dword [ebp - 0x14]
call fcn.00654224
test al, al
je case.default.0x5de8ea
mov eax, dword [ebp - 0x14]
mov ax, word [eax]
push eax
call sub.user32.dll_IsCharAlphaW
test eax, eax
je case.default.0x5de8ea
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005c13b4
test al, al
jne case.default.0x5de8ea
push ebp
mov eax, dword [ebp - 0x14]
call fcn.005dd59c
pop ecx
test al, al
jne case.default.0x5de8ea
lea ecx, [ebp - 0x2a94]
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005c14e0
cmp dword [ebp - 0x2a84], 0
jne case.default.0x5de8ea
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005c1b30
test al, al
je case.default.0x5de8ea
push ebp
lea eax, [ebp - 0x244]
call fcn.005dd878
pop ecx
test al, al
jne case.default.0x5de8ea
mov eax, 0x67358c
mov edx, dword [ebp - 0x14]
call fcn.004038bc
mov eax, dword [ebp - 0x244]
mov dword [ebp - 0x264], eax
mov eax, dword [ebp - 0x240]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x264]
mov dword [ebp - 0x254], eax
mov eax, dword [ebp - 0x260]
mov dword [ebp - 0x250], eax
inc dword [ebp - 0x250]
push ebp
mov edx, dword [ebp - 0x250]
mov eax, dword [ebp - 0x260]
call fcn.005de01c
pop ecx
push 1
mov eax, dword [0x5e1688]
push eax
push 0
lea ecx, [ebp - 0x264]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d7694
push ebp
mov edx, dword [ebp - 0x250]
mov eax, dword [ebp - 0x260]
call fcn.005de0a0
pop ecx
jmp case.default.0x5de8ea
mov eax, dword [ebp - 4]
test byte [eax + 0x30], 1
je case.default.0x5de8ea
mov eax, edi
call fcn.00551af8
mov dword [ebp - 0xb4], eax
push ebp
lea edx, [ebp - 0x2a94]
xor eax, eax
call fcn.005de0e0
pop ecx
push esi
push edi
lea esi, [ebp - 0x2a94]
lea edi, [ebp - 0x244]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp dword [ebp - 0x234], 0
jne 0x5deff0
lea ecx, [ebp - 0x244]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.005c0a30
cmp dword [ebp - 0x234], 0
jle 0x5df171
mov eax, dword [ebp - 0x240]
add eax, dword [ebp - 0x234]
inc eax
mov edx, dword [ebp - 0xc]
cmp eax, dword [edx + 4]
jl 0x5df171
cmp dword [ebp - 0x240], 0
jle 0x5df171
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x240]
cmp word [eax + edx*2 - 2], 0x27
je 0x5df050
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x240]
cmp word [eax + edx*2 - 2], 0x2018
jne 0x5df171
mov eax, dword [ebp - 0x240]
add eax, dword [ebp - 0x234]
mov edx, dword [ebp - 0xb4]
cmp word [edx + eax*2], 0x27
je 0x5df171
mov eax, dword [ebp - 0x240]
add eax, dword [ebp - 0x234]
mov edx, dword [ebp - 0xb4]
cmp word [edx + eax*2], 0x2019
je 0x5df171
lea ecx, [ebp - 0x2a98]
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005c0b5c
mov eax, dword [ebp - 0x2a98]
mov edx, 0x80000000
call fcn.00655d24
cmp eax, 0x80000000
jne 0x5df0f2
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 9
jne 0x5df171
lea eax, [ebp - 0x2a74]
push eax
lea edx, [ebp - 0x244]
mov cl, byte [0x5e1688]
mov eax, dword [ebp - 8]
call fcn.005c0d9c
mov eax, dword [ebp - 0x2a74]
mov edx, 0x5e1690
call fcn.0065411c
test eax, eax
jne 0x5df171
call fcn.0064e140
mov dword [ebp - 0x28], eax
mov edx, 0x2019
mov eax, dword [ebp - 0x28]
call fcn.0064e3a8
push ebp
mov eax, dword [ebp - 0x240]
dec eax
mov edx, dword [ebp - 0x240]
call fcn.005de01c
pop ecx
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [0x5e1688]
push eax
lea ecx, [ebp - 0x2a7c]
mov edx, dword [ebp - 0x240]
dec edx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.0064d54c
lea edx, [ebp - 0x2a7c]
lea ecx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005d5274
push ebp
mov eax, dword [ebp - 0x240]
dec eax
mov edx, dword [ebp - 0x240]
call fcn.005de0a0
pop ecx
mov eax, dword [ebp - 0x28]
call fcn.004028c0
jmp 0x5df3f1
mov eax, dword [ebp - 0xc]
cmp dword [eax + 4], 0
jle 0x5df3f1
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0xb4]
mov ax, word [edx + eax*2 - 2]
sub ax, 0x22
je 0x5df19f
sub ax, 5
jne 0x5df3f1
call fcn.0064e140
mov dword [ebp - 0x28], eax
push ebp
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
dec eax
mov edx, dword [ebp - 0xb4]
call fcn.005de654
pop ecx
and eax, 0x7f
mov edx, dword [ebp - 0xc]
mov edx, dword [edx + 4]
mov ecx, dword [ebp - 0xb4]
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 + 0x66a870]
lea edx, [ecx + edx*4]
movzx edx, word [edx + eax*2]
mov eax, dword [ebp - 0x28]
call fcn.0064e3a8
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0xb4]
mov ax, word [edx + eax*2 - 2]
mov word [0x67357e], ax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
mov ax, word [eax]
mov word [0x673580], ax
mov byte [ebp - 0xaa], 0
mov ax, word [0x673580]
mov word [ebp - 0xa2], ax
mov dx, word [ebp - 0xa2]
mov eax, dword [ebp - 4]
call fcn.004813cc
mov word [ebp - 0xa6], ax
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31], 3
jne 0x5df275
mov ax, word [ebp - 0xa2]
sub ax, 0xab
je 0x5df261
sub ax, 0x10
je 0x5df26c
jmp 0x5df275
mov word [ebp - 0xa2], 0xbb
jmp 0x5df275
mov word [ebp - 0xa2], 0xab
mov eax, dword [0x66eec8]
test byte [eax], 0x10
je 0x5df2be
mov dx, word [0x673580]
mov eax, dword [ebp - 4]
call fcn.004812c8
test al, al
je 0x5df2be
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
mov dx, word [ebp - 0xa2]
call fcn.0064eea0
test al, al
jne 0x5df2be
movzx edx, word [ebp - 0xa6]
mov eax, dword [ebp - 0x28]
call fcn.0064e3a8
mov byte [ebp - 0xaa], 1
mov ax, word [0x673580]
mov word [ebp - 0xa2], ax
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x31]
sub al, 2
je 0x5df2db
dec al
je 0x5df2f3
jmp 0x5df31c
mov ax, word [ebp - 0xa2]
cmp ax, 0x201c
jne 0x5df31c
mov word [ebp - 0xa2], 0x201d
jmp 0x5df31c
mov ax, word [ebp - 0xa2]
sub ax, 0xab
je 0x5df308
sub ax, 0x10
je 0x5df313
jmp 0x5df31c
mov word [ebp - 0xa2], 0xbb
jmp 0x5df31c
mov word [ebp - 0xa2], 0xab
mov eax, dword [0x66eec8]
test byte [eax], 0x10
je 0x5df375
mov dx, word [0x673580]
mov eax, dword [ebp - 4]
call fcn.004812f8
test al, al
je 0x5df375
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov dx, word [ebp - 0xa2]
call fcn.0064eea0
test al, al
jne 0x5df375
movzx edx, word [0x673580]
mov eax, dword [ebp - 0x28]
call fcn.0064e3a8
mov ax, word [ebp - 0xa6]
mov edx, dword [ebp - 0x28]
mov edx, dword [edx + 4]
mov word [edx], ax
mov byte [ebp - 0xaa], 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.005de01c
pop ecx
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [0x5e1688]
push eax
lea ecx, [ebp - 0x2a7c]
mov edx, dword [ebp - 0xc]
mov edx, dword [edx + 4]
dec edx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.0064d54c
lea edx, [ebp - 0x2a7c]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.005d5274
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.005de0a0
pop ecx
mov eax, dword [ebp - 0x28]
call fcn.004028c0
cmp byte [ebp - 0xaa], 0
je 0x5df3f1
mov eax, dword [ebp - 0xc]
inc dword [eax + 4]
dec dword [0x6733d0]
jmp case.default.0x5de8ea
mov eax, dword [0x66eec8]
test byte [eax], 0x10
je case.default.0x5de8ea
mov eax, edi
call fcn.00551af8
mov dword [ebp - 0xb8], 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 - 0xb8]
mov edx, dword [ebp - 0x60]
mov dx, word [eax + edx*2]
mov eax, dword [0x66ef5c]
mov eax, dword [eax]
call fcn.0064eea0
test al, al
je 0x5df492
jmp 0x5df448
dec dword [ebp - 0x60]
cmp dword [ebp - 0x60], 0
jle 0x5df5a8
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x60]
mov dx, word [eax + edx*2 - 2]
mov eax, dword [0x66fcb0]
mov eax, dword [eax]
call fcn.0064eea0
test al, al
jne 0x5df445
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x60]
mov ax, word [eax + edx*2 - 2]
sub ax, 9
je 0x5df445
sub ax, 6
je 0x5df445
jmp 0x5df5a8
dec dword [ebp - 0x60]
cmp dword [ebp - 0x60], 0
jle 0x5df4bb
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x60]
mov dx, word [eax + edx*2 - 2]
mov eax, dword [0x66fcb0]
mov eax, dword [eax]
call fcn.0064eea0
test al, al
jne 0x5df48f
jmp 0x5df4bb
inc dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
cmp eax, dword [edi + 8]
jge 0x5df4e0
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x64]
mov dx, word [eax + edx*2]
mov eax, dword [0x66fcb0]
mov eax, dword [eax]
call fcn.0064eea0
test al, al
jne 0x5df4b8
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x64]
mov dx, word [eax + edx*2]
mov eax, dword [0x66ef5c]
mov eax, dword [eax]
call fcn.0064eea0
test al, al
jne 0x5df5a8
mov eax, dword [ebp - 4]
test byte [eax + 0x30], 2
je 0x5df541
mov eax, dword [ebp - 0x64]
sub eax, dword [ebp - 0x60]
cmp eax, 2
jne 0x5df541
cmp dword [ebp - 0x60], 0
jle 0x5df541
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x60]
mov ax, word [eax + edx*2 - 2]
sub ax, 0x21
je 0x5df53b
sub ax, 0xd
je 0x5df53b
sub ax, 0x11
jne 0x5df541
sub dword [ebp - 0x64], 2
jmp 0x5df5a8
mov eax, dword [ebp - 0x64]
cmp eax, dword [ebp - 0x60]
jle 0x5df5a8
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0xb8]
push eax
lea eax, [ebp - 0x2aa0]
push eax
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x60]
mov eax, dword [ebp - 8]
call fcn.005d0684
mov al, byte [ebp - 0x2aa0]
sub al, 2
jb 0x5df5a8
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0xb8]
push eax
lea eax, [ebp - 0x2aa8]
push eax
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 8]
call fcn.005d0684
mov al, byte [ebp - 0x2aa7]
test al, al
je 0x5df5a8
sub al, 2
je 0x5df5a8
inc dword [ebp - 0x60]
mov eax, dword [ebp - 0x64]
cmp eax, dword [ebp - 0x60]
jle 0x5df619
push ebp
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x60]
call fcn.005de01c
pop ecx
lea ecx, [ebp - 0x2a7c]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [ebp - 0x64]
call fcn.0064d54c
lea eax, [ebp - 0x2a7c]
push eax
mov eax, dword [0x5e1688]
push eax
lea ecx, [ebp - 0x2ab0]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [ebp - 0x60]
call fcn.0064d54c
lea ecx, [ebp - 0x2ab0]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d4e0c
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x60]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x60]
mov dword [0x673574], eax
mov eax, dword [ebp - 0x64]
mov dword [0x673578], eax
dec dword [0x6733d0]
jmp case.default.0x5de8ea
mov eax, dword [0x66eec8]
test byte [eax], 0x10
je case.default.0x5de8ea
mov eax, dword [ebp - 0xc]
cmp dword [eax + 4], 0
jle case.default.0x5de8ea
mov eax, edi
call fcn.00551af8
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0xbc]
mov ax, word [edx + eax*2 - 2]
mov word [ebp - 0xa4], ax
mov ax, word [ebp - 0xa4]
call fcn.0062dec8
test al, al
je 0x5df9a7
cmp word [ebp - 0xa4], 0x27
je 0x5df9a7
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
sub eax, 2
mov ecx, dword [ebp - 0xbc]
mov edx, dword [edi + 8]
call fcn.005ddd98
test al, al
jne 0x5df9a7
push ebp
mov eax, dword [ebp - 0xc]
call fcn.005dddf0
pop ecx
test al, al
jne 0x5df9a7
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0xbc]
push eax
lea eax, [ebp - 0xc1]
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.005d0684
mov al, byte [ebp - 0xc1]
sub al, 2
je 0x5df6eb
sub al, 2
jne 0x5df6f9
mov al, byte [ebp - 0xc0]
sub al, 1
je 0x5df6fd
sub al, 3
je 0x5df6fd
xor eax, eax
jmp 0x5df6ff
mov al, 1
mov byte [ebp - 0xa7], al
cmp byte [ebp - 0xa7], 0
je 0x5df77a
cmp word [ebp - 0xa4], 0x28
jne 0x5df77a
lea ecx, [ebp - 0x244]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.005c0a30
cmp dword [ebp - 0x234], 0
je 0x5df77a
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x2a98]
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005c0b5c
mov ecx, dword [ebp - 0x2a98]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0xb0]
mov edx, dword [edx + 0x1c]
mov eax, dword [edx + eax*4]
lea edx, [ebp - 0x244]
call fcn.005203a4
test al, al
je 0x5df77a
mov byte [ebp - 0xa7], 0
mov al, byte [ebp - 0xbd]
mov byte [ebp - 0xa9], al
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0xbc]
push eax
lea eax, [ebp - 0xc6]
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.005d0684
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0xbc]
mov ax, word [edx + eax*2]
call fcn.0062dec8
test al, al
jne 0x5df7e0
mov al, byte [ebp - 0xc6]
sub al, 2
je 0x5df7d2
sub al, 2
jne 0x5df7e0
mov al, byte [ebp - 0xc5]
sub al, 1
je 0x5df7e4
sub al, 3
je 0x5df7e4
xor eax, eax
jmp 0x5df7e6
mov al, 1
mov byte [ebp - 0xa8], al
call fcn.0064e140
mov dword [ebp - 0x28], eax
mov edx, 0x20
mov eax, dword [ebp - 0x28]
call fcn.0064e3a8
mov cl, 0x7b
mov dl, 0x30
mov eax, dword [ebp - 8]
call fcn.00564f9c
cmp byte [ebp - 0xa8], 0
je 0x5df879
mov dx, word [ebp - 0xa4]
mov eax, dword [ebp - 4]
call fcn.004812c8
test al, al
je 0x5df841
mov dx, word [ebp - 0xa4]
mov eax, dword [ebp - 4]
call fcn.004813cc
mov edx, dword [ebp - 0x28]
mov edx, dword [edx + 4]
mov word [edx], ax
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
push esi
push edi
mov esi, eax
lea edi, [edx + 0x258]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x300]
call fcn.00547d80
mov ecx, dword [0x5e1688]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.005d5fb8
cmp byte [ebp - 0xa7], 0
je 0x5df906
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
mov word [eax], 0x20
cmp byte [ebp - 0xa9], 0
je 0x5df8c5
mov dx, word [ebp - 0xa4]
mov eax, dword [ebp - 4]
call fcn.004812c8
test al, al
jne 0x5df8c5
mov dx, word [ebp - 0xa4]
mov eax, dword [ebp - 4]
call fcn.004813cc
mov edx, dword [ebp - 0x28]
mov edx, dword [edx + 4]
mov word [edx], ax
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
push esi
push edi
mov esi, eax
lea edi, [edx + 0x258]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebp - 8]
dec dword [eax + 0x25c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x300]
call fcn.00547d80
mov ecx, dword [0x5e1688]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.005d5fb8
mov edx, 2
mov eax, dword [ebp - 8]
call fcn.00565028
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.005de01c
pop ecx
mov al, byte [ebp - 0xa7]
and al, byte [ebp - 0xa8]
je 0x5df955
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.005de0a0
pop ecx
jmp 0x5df991
cmp byte [ebp - 0xa7], 0
je 0x5df974
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.005de0a0
pop ecx
jmp 0x5df991
cmp byte [ebp - 0xa8], 0
je 0x5df991
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.005de0a0
pop ecx
mov al, byte [ebp - 0xa7]
mov byte [0x67357c], al
mov al, byte [ebp - 0xa8]
mov byte [0x67357d], al
dec dword [0x6733d0]
jmp case.default.0x5de8ea
mov eax, dword [0x66eec8]
test byte [eax], 0x10
je case.default.0x5de8ea
mov eax, dword [ebp - 4]
test byte [eax + 0x30], 4
je case.default.0x5de8ea
mov eax, edi
call fcn.00551af8
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
dec eax
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x68]
mov ax, word [eax + edx*2]
mov word [ebp - 0xa6], ax
mov ax, word [ebp - 0xa6]
sub ax, 0xb
je 0x5dfa0f
sub ax, 0x15
jne 0x5dfc38
mov dword [ebp - 0x9c], 0xffffffff
cmp dword [ebp - 0x68], 0
jle 0x5dfa48
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x68]
mov dx, word [eax + edx*2 - 2]
mov eax, dword [ebp - 4]
call fcn.004812c8
test al, al
je 0x5dfa48
mov eax, dword [ebp - 0x68]
dec eax
mov dword [ebp - 0x9c], eax
jmp 0x5dfb43
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x68]
mov dx, word [eax + edx*2 + 2]
mov eax, dword [ebp - 4]
call fcn.004812f8
test al, al
je 0x5dfa71
mov eax, dword [ebp - 0x68]
inc eax
mov dword [ebp - 0x9c], eax
jmp 0x5dfb43
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x68]
mov ax, word [eax + edx*2 + 2]
call fcn.0062dec8
test al, al
je 0x5dfb43
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0xcc]
push eax
lea eax, [ebp - 0xd1]
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.005d0684
cmp byte [ebp - 0xd0], 0
je 0x5dfb43
cmp byte [ebp - 0xcd], 0
je 0x5dfb43
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0xcc]
push eax
lea eax, [ebp - 0x2aa0]
push eax
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 8]
call fcn.005d0684
cmp byte [ebp - 0x2aa0], 0
je 0x5dfb43
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x68]
mov dx, word [eax + edx*2 + 2]
mov eax, dword [ebp - 4]
call fcn.004812c8
test al, al
jne 0x5dfb43
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x68]
mov ax, word [eax + edx*2 + 2]
sub ax, 0x22
je 0x5dfb24
sub ax, 5
jne 0x5dfb39
push ebp
mov eax, dword [ebp - 0x68]
inc eax
mov edx, dword [ebp - 0xcc]
call fcn.005de654
pop ecx
test al, al
je 0x5dfb43
mov eax, dword [ebp - 0x68]
inc eax
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0xffffffff
je 0x5dfb6b
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x9c]
mov dx, word [eax + edx*2]
mov eax, dword [ebp - 4]
call fcn.004813cc
mov word [ebp - 0xa6], ax
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x68]
mov ax, word [eax + edx*2]
cmp ax, word [ebp - 0xa6]
je 0x5dfc38
cmp word [ebp - 0xa6], 0xa0
jne 0x5dfba4
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x68]
cmp word [eax + edx*2], 0xb
je 0x5dfc38
call fcn.0064e140
mov dword [ebp - 0x28], eax
movzx edx, word [ebp - 0xa6]
mov eax, dword [ebp - 0x28]
call fcn.0064e3a8
push ebp
mov edx, dword [ebp - 0x68]
inc edx
mov eax, dword [ebp - 0x68]
call fcn.005de01c
pop ecx
mov dl, 0x30
mov eax, dword [ebp - 8]
call fcn.00564f50
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [0x5e1688]
push eax
lea ecx, [ebp - 0x2a7c]
mov edx, dword [ebp - 0x68]
inc edx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.0064d54c
lea eax, [ebp - 0x2a7c]
push eax
lea ecx, [ebp - 0x2ab0]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [ebp - 0x68]
call fcn.0064d54c
lea edx, [ebp - 0x2ab0]
mov eax, dword [ebp - 8]
pop ecx
call fcn.005d5274
mov eax, dword [ebp - 8]
call fcn.00565004
push ebp
mov edx, dword [ebp - 0x68]
inc edx
mov eax, dword [ebp - 0x68]
call fcn.005de0a0
pop ecx
mov eax, dword [ebp - 0x28]
call fcn.004028c0
dec dword [0x6733d0]
jmp case.default.0x5de8ea
mov eax, dword [0x66eec8]
test byte [eax], 0x40
je case.default.0x5de8ea
push ebp
lea edx, [ebp - 0x2a94]
lea eax, [ebp - 0x14]
call fcn.005de0e0
pop ecx
push esi
push edi
lea esi, [ebp - 0x2a94]
lea edi, [ebp - 0x244]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
lea eax, [ebp - 0x2a94]
push eax
lea ecx, [ebp - 0x244]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
call fcn.0048104c
push esi
push edi
lea esi, [ebp - 0x2a94]
lea edi, [ebp - 0x244]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp dword [ebp - 0x234], 0
jle case.default.0x5de8ea
push ebp
lea eax, [ebp - 0x244]
call fcn.005dd878
pop ecx
test al, al
jne case.default.0x5de8ea
mov eax, 0x67358c
mov edx, dword [ebp - 0x14]
call fcn.004038bc
lea eax, [ebp - 0x2f8]
call fcn.00544200
mov dword [ebp - 0x2b4], 1
push ebp
lea edx, [ebp - 0x2f8]
lea eax, [ebp - 0x244]
call fcn.005ddd00
pop ecx
test al, al
je case.default.0x5de8ea
push ebp
mov edx, dword [ebp - 0x240]
add edx, dword [ebp - 0x234]
mov eax, dword [ebp - 0x240]
call fcn.005de01c
pop ecx
push ebp
mov edx, dword [ebp - 0x240]
add edx, dword [ebp - 0x234]
mov eax, dword [ebp - 0x240]
call fcn.005de0a0
pop ecx
jmp case.default.0x5de8ea
mov eax, dword [0x66eec8]
test byte [eax], 0x80
je case.default.0x5de8ea
xor edx, edx
mov ax, 0x2f
call fcn.0062df64
push ebp
lea edx, [ebp - 0x2a94]
lea eax, [ebp - 0x14]
call fcn.005de0e0
pop ecx
push esi
push edi
lea esi, [ebp - 0x2a94]
lea edi, [ebp - 0x244]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov dl, 1
mov ax, 0x2f
call fcn.0062df64
mov eax, dword [ebp - 0x14]
call fcn.00403aa8
cmp eax, 3
jne case.default.0x5de8ea
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
sub eax, dword [ebp - 0x240]
sub eax, dword [ebp - 0x234]
sub eax, 2
jae case.default.0x5de8ea
mov eax, dword [ebp - 0x14]
mov ax, word [eax]
add eax, 0xffffffcf
sub ax, 9
jae case.default.0x5de8ea
mov eax, dword [ebp - 0x14]
cmp word [eax + 2], 0x2f
jne case.default.0x5de8ea
mov eax, dword [ebp - 0x14]
mov ax, word [eax + 4]
add eax, 0xffffffcf
sub ax, 9
jae case.default.0x5de8ea
push ebp
mov eax, dword [ebp - 0x14]
call fcn.005dd59c
pop ecx
test al, al
jne case.default.0x5de8ea
mov eax, 0x67358c
mov edx, dword [ebp - 0x14]
call fcn.004038bc
mov dword [ebp - 0x234], 1
lea eax, [ebp - 0x2f8]
call fcn.00544200
mov dword [ebp - 0x2b4], 1
push ebp
lea edx, [ebp - 0x2f8]
lea eax, [ebp - 0x244]
call fcn.005ddd00
pop ecx
mov byte [ebp - 0xab], al
inc dword [ebp - 0x240]
mov dword [ebp - 0x2ec], 1
xor eax, eax
mov dword [ebp - 0x2b4], eax
push ebp
lea edx, [ebp - 0x2f8]
lea eax, [ebp - 0x244]
call fcn.005ddd00
pop ecx
or al, byte [ebp - 0xab]
mov byte [ebp - 0xab], al
inc dword [ebp - 0x240]
mov dword [ebp - 0x2ec], 0x80000000
mov dword [ebp - 0x2b4], 2
push ebp
lea edx, [ebp - 0x2f8]
lea eax, [ebp - 0x244]
call fcn.005ddd00
pop ecx
or al, byte [ebp - 0xab]
je case.default.0x5de8ea
mov eax, dword [ebp - 0x240]
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.005de01c
pop ecx
push ebp
mov edx, dword [ebp - 0x9c]
add edx, 3
mov eax, dword [ebp - 0x9c]
call fcn.005de0a0
pop ecx
jmp case.default.0x5de8ea
mov eax, dword [0x66eec8]
test byte [eax + 1], 1
je case.default.0x5de8ea
push ebp
lea edx, [ebp - 0x2a94]
xor eax, eax
call fcn.005de0e0
pop ecx
push esi
push edi
lea esi, [ebp - 0x2a94]
lea edi, [ebp - 0x244]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp dword [ebp - 0x234], 0
jle case.default.0x5de8ea
lea ecx, [ebp - 0x2a94]
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005c14e0
push esi
push edi
lea esi, [ebp - 0x2a94]
lea edi, [ebp - 0x244]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp dword [ebp - 0x234], 0
jle case.default.0x5de8ea
lea eax, [ebp - 0x14]
push eax
lea edx, [ebp - 0x244]
mov cl, byte [0x5e1688]
mov eax, dword [ebp - 8]
call fcn.005c0d9c
push ebp
mov eax, dword [ebp - 0x14]
call fcn.005dd59c
pop ecx
test al, al
jne case.default.0x5de8ea
push ebp
lea eax, [ebp - 0x244]
call fcn.005dd878
pop ecx
test al, al
jne case.default.0x5de8ea
lea edx, [ebp - 0x244]
mov cl, 0xd
mov eax, dword [ebp - 8]
call fcn.005e5efc
test eax, eax
jne case.default.0x5de8ea
mov eax, 0x67358c
mov edx, dword [ebp - 0x14]
call fcn.004038bc
mov dl, 0x12
mov eax, dword [ebp - 8]
call fcn.00564f50
mov eax, dword [ebp - 0x244]
push eax
mov eax, dword [ebp - 0x240]
add eax, dword [ebp - 0x234]
push eax
mov al, byte [0x5e1698]
push eax
mov ecx, dword [ebp - 0x240]
mov edx, dword [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005c2d68
mov eax, dword [0x66ebb0]
push esi
push edi
lea esi, [eax + 8]
lea edi, [ebp - 0x2f8]
mov ecx, 0x17
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebp - 8]
lea edx, [eax + 0x34c]
lea eax, [ebp - 0x2f8]
call fcn.00544094
mov eax, dword [ebp - 8]
push esi
push edi
lea esi, [eax + 0x258]
lea edi, [ebp - 0x274]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x244]
mov dword [eax + 0x258], edx
mov eax, dword [ebp - 0x240]
add eax, dword [ebp - 0x234]
mov edx, dword [ebp - 8]
mov dword [edx + 0x25c], eax
lea edx, [ebp - 0x264]
mov cl, 0x58
mov eax, dword [ebp - 8]
call fcn.005e3ed4
test eax, eax
je 0x5e00e1
mov dl, byte [0x5e1698]
mov eax, dword [ebp - 8]
call fcn.005c35a4
mov dl, 0x24
mov eax, dword [ebp - 8]
call fcn.00564fb8
lea eax, [ebp - 0x2f8]
push eax
mov al, byte [0x5e1688]
push eax
lea ecx, [ebp - 0x264]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005ce3f8
mov eax, dword [ebp - 8]
call fcn.00565004
mov eax, dword [ebp - 8]
push esi
push edi
lea edi, [eax + 0x258]
lea esi, [ebp - 0x274]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
jmp 0x5e0210
lea eax, [ebp - 0x2ab4]
mov edx, dword [0x67358c]
call fcn.004034e4
mov eax, dword [ebp - 0x2ab4]
lea ecx, [ebp - 0x2a98]
mov edx, 4
call fcn.00654748
mov eax, dword [ebp - 0x2a98]
mov edx, 0x5e16a4
call fcn.0065408c
test eax, eax
jne 0x5e0128
mov byte [ebp - 0xae], 1
jmp 0x5e01c5
mov eax, dword [0x67358c]
call fcn.00620cd0
test al, al
jne 0x5e01be
mov dx, 0x40
mov eax, dword [0x67358c]
call fcn.00653960
test eax, eax
jne 0x5e01be
mov byte [ebp - 0xae], 1
mov dword [ebp - 0x9c], 5
mov eax, dword [0x66eb90]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x128]
mov eax, dword [eax]
call fcn.0040351c
inc eax
push eax
mov eax, dword [ebp - 0x128]
mov edx, dword [eax]
lea eax, [ebp - 0x2a98]
mov ecx, 0x5e16b4
call fcn.00403568
mov edx, dword [ebp - 0x2a98]
mov eax, dword [0x67358c]
pop ecx
call fcn.00653fc0
test eax, eax
jne 0x5e01ad
mov byte [ebp - 0xae], 0
jmp 0x5e01c5
add dword [ebp - 0x128], 4
dec dword [ebp - 0x9c]
jne 0x5e0168
jmp 0x5e01c5
mov byte [ebp - 0xae], 0
cmp byte [ebp - 0xae], 0
je 0x5e01e3
mov eax, 0x67358c
mov ecx, dword [0x67358c]
mov edx, 0x5e16bc
call fcn.00403b14
lea eax, [ebp - 0x1c]
push eax
xor ecx, ecx
xor edx, edx
mov eax, dword [0x67358c]
call fcn.005459f8
xor ecx, ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
call fcn.005e43ec
mov dl, byte [0x5e1698]
mov eax, dword [ebp - 8]
call fcn.005c35a4
mov eax, dword [ebp - 8]
call fcn.00565004
push ebp
mov edx, dword [ebp - 0x240]
add edx, dword [ebp - 0x234]
mov eax, dword [ebp - 0x240]
call fcn.005de01c
pop ecx
push ebp
mov edx, dword [ebp - 0x240]
mov eax, dword [ebp - 0x240]
call fcn.005de0a0
pop ecx
jmp case.default.0x5de8ea
mov eax, dword [0x66eec8]
test byte [eax + 1], 2
je case.default.0x5de8ea
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov edx, dword [edi + 8]
dec edx
cmp eax, edx
jl case.default.0x5de8ea
cmp dword [edi + 0x37], 0
jne case.default.0x5de8ea
mov edx, dword [ebp - 0xc]
mov cl, 0xd
mov eax, dword [ebp - 8]
call fcn.005e5efc
test eax, eax
jne case.default.0x5de8ea
mov eax, edi
call fcn.00551af8
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xd8]
cmp word [eax], 0xa
jne 0x5e054a
mov eax, dword [0x66eec8]
test byte [eax + 2], 8
je 0x5e0e35
mov eax, dword [ebp - 0xd8]
mov ax, word [eax + 2]
push eax
call sub.user32.dll_IsCharAlphaNumericW
test eax, eax
jne 0x5e02fb
mov eax, dword [ebp - 0xd8]
mov ax, word [eax + 2]
sub ax, 9
je 0x5e02e3
sub ax, 0x17
jne 0x5e0e35
mov eax, dword [ebp - 0xd8]
mov ax, word [eax + 4]
push eax
call sub.user32.dll_IsCharAlphaNumericW
test eax, eax
je 0x5e0e35
lea ecx, [ebp - 0x2a7c]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
xor edx, edx
call fcn.0064d54c
lea edx, [ebp - 0x2a7c]
mov eax, dword [ebp - 8]
call fcn.005c4a64
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xdc]
cmp byte [eax + 0x3c], 0
jne 0x5e0e35
mov eax, dword [ebp - 0xdc]
mov edx, dword [eax + 0x34]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x2c]
call fcn.0061f000
cmp eax, 0x5a0
jg 0x5e0e35
mov eax, dword [ebp - 0xdc]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x30]
call fcn.0061f000
cmp eax, 0x5a0
jg 0x5e0e35
xor eax, eax
call fcn.0050904c
mov eax, dword [0x66e8a8]
mov eax, dword [eax + 0x50]
mov edx, dword [0x66fa6c]
mov edx, dword [edx + 8]
mov edx, dword [edx + 0x1c]
mov eax, dword [edx + eax*4]
call fcn.005477cc
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
add eax, 0x14
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xe0]
mov edx, dword [ebp - 0x4c]
mov dword [eax + 8], edx
mov eax, dword [ebp - 0xe0]
mov dword [eax + 0x10], 0x80000000
mov eax, dword [ebp - 0xe0]
mov byte [eax + 0x91], 0
mov eax, dword [ebp - 0xd8]
mov ax, word [eax + 2]
sub ax, 9
je 0x5e03f0
sub ax, 0x17
je 0x5e03f0
xor edx, edx
jmp 0x5e03f2
mov dl, 1
and edx, 0x7f
inc edx
lea ecx, [ebp - 0x30]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.0064d54c
lea eax, [ebp - 0x30]
push eax
mov eax, dword [0x5e1684]
push eax
lea ecx, [ebp - 0x2a7c]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
xor edx, edx
call fcn.0064d54c
lea ecx, [ebp - 0x2a7c]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d4e0c
mov byte [ebp - 0xad], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x604]
mov eax, dword [eax + 0x18]
dec eax
cmp eax, 0
jl 0x5e04bc
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x604]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x6c]
mov eax, dword [eax + edx*4]
mov cl, byte [0x5e1688]
mov edx, dword [ebp - 0x34]
call fcn.00561c00
test al, al
je 0x5e04b3
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x604]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x6c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 8]
call fcn.005ed2f4
test al, al
jne 0x5e04b3
mov eax, dword [ebp - 0x34]
call fcn.004028c0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x604]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x6c]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x34], eax
mov byte [ebp - 0xad], 1
jmp 0x5e04bc
dec dword [ebp - 0x6c]
cmp dword [ebp - 0x6c], 0xffffffff
jne 0x5e044b
cmp byte [ebp - 0xad], 0
jne 0x5e04d6
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x604]
mov edx, dword [ebp - 0x34]
call fcn.0064e9dc
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 + 0x258]
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.005ed544
test byte [ebp + 0xc], 2
je 0x5e052e
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
inc eax
mov edx, dword [ebp - 8]
mov dword [edx + 0x258], eax
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x25c], edx
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 8]
call fcn.005ed544
push ebp
mov edx, dword [ebp - 0x2c]
xor eax, eax
call fcn.005de01c
pop ecx
push ebp
xor edx, edx
xor eax, eax
call fcn.005de0a0
pop ecx
jmp 0x5e0e35
mov dl, 0x59
mov eax, dword [ebp - 8]
call fcn.00564f50
lea ecx, [ebp - 0x2ac4]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, 1
call fcn.005439ec
lea edx, [ebp - 0x2ac4]
lea ecx, [ebp - 0x2f8]
mov eax, dword [ebp - 8]
call fcn.005c51e4
mov eax, dword [ebp - 8]
call fcn.00565004
lea edx, [ebp - 0x2ac4]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.005439f4
lea edx, [ebp - 0x2ac4]
mov cl, 0x39
mov eax, dword [ebp - 8]
call fcn.005e5efc
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0
je 0x5e05dc
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 0x3c]
call fcn.00546404
cmp dword [ebp - 0x20], 0
je 0x5e05dc
mov eax, dword [0x66f734]
mov eax, dword [eax]
mov ecx, 1
mov edx, dword [ebp - 0x20]
call fcn.0062407c
mov dword [ebp - 0x2f8], eax
mov eax, dword [ebp - 0x2f8]
mov al, byte [eax + 0x12]
mov byte [ebp - 0xac], al
mov eax, dword [ebp - 0xd8]
cmp word [eax], 0x2a
jne 0x5e0602
mov eax, dword [0x66eec8]
test byte [eax + 2], 1
jne 0x5e0662
mov eax, dword [ebp - 0xd8]
cmp word [eax], 0x3e
jne 0x5e0619
mov eax, dword [0x66eec8]
test byte [eax + 2], 2
jne 0x5e0662
mov eax, dword [ebp - 0xd8]
mov dx, word [eax]
mov eax, dword [0x66e8c0]
mov eax, dword [eax]
call fcn.0064eea0
test al, al
je 0x5e063d
mov eax, dword [0x66eec8]
test byte [eax + 2], 4
jne 0x5e0662
cmp byte [ebp - 0xac], 0
je 0x5e0651
mov eax, dword [0x66eec8]
test byte [eax + 2], 0x10
jne 0x5e0662
mov eax, dword [ebp - 0xd8]
cmp word [eax], 0x2022
jne 0x5e094b
mov eax, dword [ebp - 0xd8]
mov ax, word [eax + 2]
sub ax, 9
je 0x5e067c
sub ax, 0x17
jne 0x5e094b
mov eax, dword [ebp - 0xd8]
cmp word [eax + 4], 0x20
jbe 0x5e094b
push ebp
mov eax, dword [ebp - 0xd8]
call fcn.005de798
pop ecx
test al, al
jne 0x5e094b
xor eax, eax
call fcn.0050904c
call fcn.005477bc
mov dword [ebp - 0x34], eax
mov eax, dword [0x66e8a8]
mov eax, dword [eax + 0x50]
mov edx, dword [0x66fa6c]
mov edx, dword [edx + 8]
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + eax*4]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x34]
call fcn.00561b88
mov eax, dword [ebp - 0x34]
add eax, 0x14
mov dword [ebp - 0xe4], eax
cmp byte [ebp - 0xac], 0
je 0x5e0770
mov dword [ebp - 0x74], 0x16
lea eax, [ebp - 0x2a0]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x12c], 0x6731c4
mov eax, dword [ebp - 0x128]
mov eax, dword [eax]
mov edx, dword [ebp - 0x12c]
cmp eax, dword [edx]
je 0x5e0730
mov eax, dword [ebp - 0xe4]
mov edx, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x128]
mov ecx, dword [ecx]
mov dword [eax + edx*4 + 0xc], ecx
dec dword [ebp - 0x74]
sub dword [ebp - 0x12c], 4
sub dword [ebp - 0x128], 4
cmp dword [ebp - 0x74], 0xffffffff
jne 0x5e0709
mov eax, dword [ebp - 0xe4]
add eax, 0x94
mov edx, dword [ebp - 0xd8]
mov dx, word [edx]
call fcn.00403980
mov eax, dword [ebp - 0xe4]
xor edx, edx
mov dword [eax + 8], edx
jmp 0x5e07f8
mov eax, dword [ebp - 0xd8]
mov dx, word [eax]
mov eax, dword [0x66e8c0]
mov eax, dword [eax]
call fcn.0064eea0
test al, al
je 0x5e07bc
mov eax, dword [ebp - 0xe4]
add eax, 0x94
mov edx, dword [ebp - 0xd8]
mov dx, word [edx]
call fcn.00403980
mov eax, dword [ebp - 0xe4]
mov dword [eax + 0xc], 0x80000000
mov eax, dword [ebp - 0xe4]
xor edx, edx
mov dword [eax + 8], edx
jmp 0x5e07f8
mov eax, dword [ebp - 0xd8]
cmp word [eax], 0x3e
jne 0x5e07f8
mov eax, dword [ebp - 0xe4]
add eax, 0x94
mov edx, 0x5e16d0
call fcn.004038bc
mov eax, dword [0x66f938]
mov eax, dword [eax]
mov edx, dword [ebp - 0xe4]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 0xe4]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [ebp - 0xe4]
mov byte [eax + 0x91], 0
mov byte [ebp - 0xad], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x604]
mov eax, dword [eax + 0x18]
dec eax
cmp eax, 0
jl 0x5e08b1
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x604]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x6c]
mov eax, dword [eax + edx*4]
mov cl, byte [0x5e1688]
mov edx, dword [ebp - 0x34]
call fcn.00561c00
test al, al
je 0x5e08a4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x604]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x6c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 8]
call fcn.005ed2f4
test al, al
jne 0x5e08a4
mov eax, dword [ebp - 0x34]
cmp dword [eax + 0x1c], 0
je 0x5e087e
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 8]
call fcn.005f7f00
mov eax, dword [ebp - 0x34]
call fcn.004028c0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x604]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x6c]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x34], eax
mov byte [ebp - 0xad], 1
jmp 0x5e08b1
dec dword [ebp - 0x6c]
cmp dword [ebp - 0x6c], 0xffffffff
jne 0x5e0825
cmp byte [ebp - 0xad], 0
jne 0x5e08cb
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x604]
mov edx, dword [ebp - 0x34]
call fcn.0064e9dc
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 + 0x258]
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.005ed544
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 0x5e092c
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
inc eax
mov edx, dword [ebp - 8]
mov dword [edx + 0x258], eax
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x25c], edx
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 8]
call fcn.005ed544
push ebp
mov edx, dword [ebp - 0x70]
sub edx, dword [edi + 8]
xor eax, eax
call fcn.005de01c
pop ecx
push ebp
xor edx, edx
xor eax, eax
call fcn.005de0a0
pop ecx
jmp 0x5e0e35
mov dword [ebp - 0x78], 0xffffffff
mov eax, dword [edi + 8]
dec eax
test eax, eax
jl 0x5e0987
inc eax
mov dword [ebp - 0xe8], eax
xor eax, eax
mov edx, dword [ebp - 0xd8]
mov dx, word [edx + eax*2]
sub dx, 9
je 0x5e0979
sub dx, 0x17
jne 0x5e097e
mov dword [ebp - 0x78], eax
jmp 0x5e0987
inc eax
dec dword [ebp - 0xe8]
jne 0x5e0963
cmp dword [ebp - 0x78], 0
jl 0x5e0e35
cmp dword [ebp - 0x78], 0xc
jg 0x5e0e35
lea eax, [ebp - 0x24]
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0xd8]
call fcn.00403964
call fcn.0064e78c
mov dword [ebp - 0x40], eax
call fcn.0064e78c
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.00546bf0
test al, al
je 0x5e0e25
xor eax, eax
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov eax, dword [ebp - 8]
call fcn.00563a8c
mov edx, eax
mov eax, dword [ebp - 8]
call fcn.00563ae0
mov dword [ebp - 0x84], eax
call fcn.0064e78c
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 0x5e0b63
dec edx
mov dword [ebp - 0xe8], edx
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xb0]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x7c]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xec]
cmp dword [eax + 0x37], 0
je 0x5e0b54
mov eax, dword [ebp - 0xec]
mov edx, dword [eax + 0x37]
mov eax, dword [ebp - 0x3c]
call fcn.0064eb58
test al, al
jne 0x5e0b54
mov eax, dword [ebp - 0xec]
mov edx, dword [eax + 0x37]
mov eax, dword [ebp - 0x3c]
call fcn.0064e9dc
mov eax, dword [ebp - 0xec]
mov edx, dword [eax + 0x37]
mov eax, dword [ebp - 8]
call fcn.005ed2f4
test al, al
jne 0x5e0b54
mov eax, dword [ebp - 0xec]
mov eax, dword [eax + 0x37]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xf0]
cmp byte [eax + 0xb], 0
je 0x5e0b54
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x40]
call fcn.0064eb58
test al, al
je 0x5e0b54
mov eax, dword [ebp - 0xf0]
mov eax, dword [eax + 0xa8]
mov edx, dword [ebp - 0x18]
call fcn.00403bc0
jne 0x5e0b54
xor eax, eax
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x7c]
cmp eax, 0
jl 0x5e0b19
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xb0]
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 - 0xec]
cmp eax, dword [edx + 0x37]
jne 0x5e0b10
inc dword [ebp - 0x88]
dec dword [ebp - 0x80]
cmp dword [ebp - 0x80], 0xffffffff
jne 0x5e0aea
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x40]
call fcn.0064eaf4
mov edx, dword [ebp - 0x44]
mov edx, dword [edx + 0x1c]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0xf0]
mov edx, dword [edx + 0x14]
add edx, dword [ebp - 0x88]
cmp eax, edx
jne 0x5e0b54
mov eax, dword [ebp - 0xec]
mov eax, dword [eax + 0x37]
mov dword [ebp - 0x38], eax
jmp 0x5e0b63
dec dword [ebp - 0x7c]
inc dword [ebp - 0xe8]
jne 0x5e0a1e
mov eax, dword [ebp - 0x3c]
call fcn.0064edac
cmp dword [ebp - 0x38], 0
je 0x5e0b7c
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x34], eax
jmp 0x5e0da4
xor eax, eax
mov dword [ebp - 0x34], eax
mov edx, 1
mov eax, dword [ebp - 0x44]
call fcn.0064eaf4
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0xffffffff
jne 0x5e0bad
xor edx, edx
mov eax, dword [ebp - 0x44]
call fcn.0064eaf4
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0xffffffff
je 0x5e0da4
call fcn.005477bc
mov dword [ebp - 0x34], eax
xor eax, eax
call fcn.0050904c
mov byte [ebp - 0xad], 0
mov eax, dword [0x66e8a8]
mov eax, dword [eax + 0x54]
mov edx, dword [0x66fa6c]
mov edx, dword [edx + 0xc]
mov edx, dword [edx + 0x1c]
mov eax, dword [edx + eax*4]
add eax, 0x14
mov dword [ebp - 0xf4], 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 - 0xf4]
cmp eax, dword [edx + 4]
jne 0x5e0c46
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x18]
call fcn.00403bc0
jne 0x5e0c46
mov eax, dword [0x66e8a8]
mov eax, dword [eax + 0x54]
mov edx, dword [0x66fa6c]
mov edx, dword [edx + 0xc]
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + eax*4]
mov eax, dword [ebp - 0x34]
call fcn.00561b54
mov byte [ebp - 0xad], 1
cmp byte [ebp - 0xad], 0
jne 0x5e0d1d
xor eax, eax
mov dword [ebp - 0x98], eax
cmp byte [ebp - 0xad], 0
jne 0x5e0d1d
mov eax, dword [0x66fa6c]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x18]
dec eax
test eax, eax
jl 0x5e0d0a
inc eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0x6c], 0
mov eax, dword [0x66fa6c]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x6c]
mov eax, dword [eax + edx*4]
add eax, 0x14
mov dword [ebp - 0xf8], 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 - 0xf8]
cmp eax, dword [edx + 4]
jne 0x5e0cff
cmp dword [ebp - 0x98], 1
je 0x5e0cdd
mov eax, dword [ebp - 0xf8]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x18]
call fcn.00403bc0
jne 0x5e0cff
mov eax, dword [0x66fa6c]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x6c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x34]
call fcn.00561b54
mov byte [ebp - 0xad], 1
jmp 0x5e0d0a
inc dword [ebp - 0x6c]
dec dword [ebp - 0xe8]
jne 0x5e0c8a
inc dword [ebp - 0x98]
cmp dword [ebp - 0x98], 2
jne 0x5e0c5b
cmp byte [ebp - 0xad], 0
jne 0x5e0d45
mov eax, dword [0x66e8a8]
mov eax, dword [eax + 0x54]
mov edx, dword [0x66fa6c]
mov edx, dword [edx + 0xc]
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + eax*4]
mov eax, dword [ebp - 0x34]
call fcn.00561b54
mov eax, dword [ebp - 0x34]
add eax, 0x14
mov dword [ebp - 0xfc], 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 - 0xfc]
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 - 0xfc]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0xfc]
add eax, 0x94
mov edx, dword [ebp - 0x18]
call fcn.004038bc
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x604]
mov edx, dword [ebp - 0x34]
call fcn.0064e9dc
cmp dword [ebp - 0x34], 0
je 0x5e0e25
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 + 0x258]
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.005ed544
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 0x5e0e0b
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
inc eax
mov edx, dword [ebp - 8]
mov dword [edx + 0x258], eax
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x25c], edx
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 8]
call fcn.005ed544
push ebp
mov edx, dword [ebp - 0x70]
sub edx, dword [edi + 8]
xor eax, eax
call fcn.005de01c
pop ecx
push ebp
xor edx, edx
xor eax, eax
call fcn.005de0a0
pop ecx
mov eax, dword [ebp - 0x44]
call fcn.0064edac
mov eax, dword [ebp - 0x40]
call fcn.0064edac
dec dword [0x6733d0]
jmp case.default.0x5de8ea
mov eax, dword [ebp - 4]
cmp dword [eax + 0x28], 0xffffffff
je case.default.0x5de8ea
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
lea eax, [eax + eax*4]
mov edx, dword [0x66f1f8]
lea eax, [edx + eax*4]
mov dword [ebp - 0x100], eax
xor eax, eax
mov al, bl
sub eax, 0xc
mov edx, dword [ebp - 0x100]
cmp eax, dword [edx + 4]
jge case.default.0x5de8ea
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.0x5de8ea
push ebp
mov eax, ebx
call fcn.005de190
pop ecx
jmp case.default.0x5de8ea
test byte [ebp + 0xc], 2
je case.default.0x5de8ea
mov eax, dword [0x66eec8]
test byte [eax + 1], 8
je case.default.0x5de8ea
cmp byte [edi + 0x3c], 0
jne case.default.0x5de8ea
cmp dword [edi + 8], 3
jle case.default.0x5de8ea
mov eax, edi
call fcn.00551af8
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x104]
mov ax, word [eax]
sub ax, 0x2b
je 0x5e0ef6
sub ax, 0x51
jne 0x5e1464
lea eax, [ebp - 0x2a50]
mov edx, 0x2758
call fcn.00658ea4
mov dword [ebp - 0x9c], 1
jmp 0x5e0f95
imul eax, dword [ebp - 0x2978], 0x27
lea eax, [ebp + eax*4 - 0x2974]
jmp 0x5e0f31
inc dword [ebp - 0x9c]
inc dword [eax + 0x94]
mov edx, dword [ebp - 0x9c]
cmp edx, dword [edi + 8]
jge 0x5e0f4f
mov edx, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x9c]
cmp word [edx + ecx*2], 9
je 0x5e0f25
cmp dword [eax + 0x94], 0
je 0x5e0f7f
mov eax, dword [ebp - 0x9c]
cmp eax, dword [edi + 8]
je 0x5e0f7f
mov eax, dword [ebp - 0x104]
mov edx, dword [ebp - 0x9c]
mov ax, word [eax + edx*2]
sub ax, 0x2b
je 0x5e0f89
sub ax, 0x51
je 0x5e0f89
xor eax, eax
mov dword [ebp - 0x2978], eax
jmp 0x5e0fae
inc dword [ebp - 0x9c]
inc dword [ebp - 0x2978]
mov eax, dword [edi + 8]
dec eax
cmp eax, dword [ebp - 0x9c]
jle 0x5e0fae
cmp dword [ebp - 0x2978], 0x3f
jl 0x5e0f15
cmp dword [ebp - 0x2978], 0
jle 0x5e1464
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0xb0]
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + eax*4]
mov eax, dword [0x66ff8c]
mov eax, dword [eax]
call fcn.00624e18
xor eax, eax
mov dword [ebp - 0x90], eax
mov eax, dword [0x66ff8c]
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x2a3c], 0x6c
mov dword [ebp - 0x2a34], 0x6c
mov dword [ebp - 0x2984], 0xff000000
movsx eax, word [edi + 0x1e]
movsx edx, word [edi + 0x1c]
add eax, edx
mov dword [ebp - 0x2a4c], eax
mov eax, dword [ebp - 0x2978]
dec eax
test eax, eax
jl 0x5e1200
inc eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0x9c], 0
lea eax, [ebp - 0x2974]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0x10c]
mov dword [eax + 0x18], 0xa
mov eax, dword [ebp - 0x10c]
mov dword [eax + 0x1c], 1
mov eax, dword [ebp - 0x10c]
mov dword [eax + 0x20], 0xff000000
mov eax, dword [ebp - 0x10c]
mov edx, dword [ebp - 0x10c]
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 - 0x10c]
mov edx, dword [ebp - 0x10c]
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 - 0x10c]
mov edx, dword [ebp - 0x10c]
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 - 0x10c]
add eax, 4
mov edx, 4
call fcn.00620520
mov eax, dword [ebp - 0x10c]
mov dword [eax + 0x88], 0xff000000
cmp dword [ebp - 0x9c], 0
jne 0x5e1111
mov eax, dword [ebp - 0x2a4c]
mov dword [ebp - 0x94], eax
jmp 0x5e1182
mov eax, dword [ebp - 0x12c]
mov eax, dword [eax - 0x9c]
mov dword [ebp - 0x94], eax
jmp 0x5e1182
mov eax, dword [ebp - 0x108]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x90]
mov eax, dword [eax + edx*4]
lea edx, [ebp - 0x114]
call fcn.00624b7c
cmp byte [ebp - 0x110], 4
je 0x5e1159
mov eax, dword [ebp - 0x114]
cmp eax, dword [ebp - 0x94]
jg 0x5e1161
inc dword [ebp - 0x90]
jmp 0x5e1182
mov eax, dword [ebp - 0x10c]
dec dword [eax + 0x94]
mov eax, dword [ebp - 0x10c]
cmp dword [eax + 0x94], 0
je 0x5e1193
inc dword [ebp - 0x90]
mov eax, dword [ebp - 0x108]
mov eax, dword [eax + 0x18]
cmp eax, dword [ebp - 0x90]
jg 0x5e1125
mov eax, dword [ebp - 0x108]
mov eax, dword [eax + 0x18]
cmp eax, dword [ebp - 0x90]
jle 0x5e11d1
mov eax, dword [ebp - 0x108]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x90]
mov eax, dword [eax + edx*4]
lea edx, [ebp - 0x2a7c]
call fcn.00624b7c
mov eax, dword [ebp - 0x2a7c]
mov edx, dword [ebp - 0x10c]
mov dword [edx], eax
jmp 0x5e11e4
mov eax, dword [ebp - 0x94]
add eax, 0xb4
mov edx, dword [ebp - 0x10c]
mov dword [edx], eax
inc dword [ebp - 0x9c]
add dword [ebp - 0x12c], 0x9c
dec dword [ebp - 0xe8]
jne 0x5e104d
lea ecx, [ebp - 0x2a7c]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [edi + 8]
call fcn.0064d54c
lea eax, [ebp - 0x2a7c]
push eax
mov eax, dword [0x5e1688]
push eax
lea ecx, [ebp - 0x2ab0]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
xor edx, edx
call fcn.0064d54c
lea ecx, [ebp - 0x2ab0]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d4e0c
xor eax, eax
call fcn.005474e4
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x118]
cmp dword [eax + 0x18], 0
jle 0x5e13c4
mov eax, dword [ebp - 0x118]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x11c]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x2a44], eax
mov eax, dword [ebp - 0x11c]
push esi
push edi
lea esi, [eax + 0x14]
lea edi, [ebp - 0x2a3c]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebp - 0x2978]
dec eax
cmp eax, 0
jl 0x5e13b9
mov dword [ebp - 0x9c], eax
imul eax, dword [ebp - 0x9c], 0x27
lea eax, [ebp + eax*4 - 0x2974]
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x9c], 0
jne 0x5e12d6
xor eax, eax
mov dword [ebp - 0xa0], eax
jmp 0x5e131f
mov eax, dword [ebp - 0x2978]
dec eax
cmp eax, dword [ebp - 0x9c]
jne 0x5e12fa
mov eax, dword [ebp - 0x11c]
mov eax, dword [eax + 0xd8]
dec eax
mov dword [ebp - 0xa0], eax
jmp 0x5e131f
mov eax, dword [ebp - 0x11c]
mov edx, dword [eax + 0xd8]
sub edx, 2
mov eax, dword [ebp - 0x9c]
call fcn.00653538
call fcn.00653548
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x54], eax
imul eax, dword [ebp - 0xa0], 0x27
mov edx, dword [ebp - 0x11c]
lea eax, [edx + eax*4 + 0xdc]
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
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 - 0x120]
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 - 0x11c]
lea eax, [edx + eax*4 + 0xdc]
mov edx, dword [ebp - 0x54]
call fcn.00547108
mov eax, dword [ebp - 0x120]
mov eax, dword [eax + 0x88]
mov edx, dword [ebp - 0x54]
mov dword [edx + 0x88], eax
dec dword [ebp - 0x9c]
sub dword [ebp - 0x12c], 0x9c
cmp dword [ebp - 0x9c], 0xffffffff
jne 0x5e12c3
mov eax, dword [ebp - 0x118]
call fcn.0064ed60
mov eax, dword [ebp - 0x118]
call fcn.0064edac
call fcn.0064e78c
mov dword [ebp - 0x48], eax
lea edx, [ebp - 0x2a50]
mov eax, dword [ebp - 0x48]
call fcn.0064e9dc
mov eax, dword [ebp - 0x48]
push eax
push 1
mov ecx, dword [ebp - 0x2978]
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.005ef2d0
mov eax, dword [ebp - 0x48]
call fcn.0064edac
lea ecx, [ebp - 0x264]
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov eax, dword [ebp - 8]
call fcn.005efe38
lea eax, [ebp - 0x29c]
call fcn.00544260
mov word [ebp - 0x29a], 0
mov word [ebp - 0x29c], 0
mov word [ebp - 0x294], 0
mov byte [ebp - 0x292], 0
lea eax, [ebp - 0x29c]
push eax
lea ecx, [ebp - 0x264]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005ce104
mov byte [0x673582], 1
dec dword [0x6733d0]
jmp case.default.0x5de8ea
mov eax, dword [0x66eec8]
test byte [eax + 1], 0x10
je case.default.0x5de8ea
mov eax, edi
call fcn.00551af8
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0x124]
mov dx, word [eax]
mov eax, dword [0x66e8c0]
mov eax, dword [eax]
call fcn.0064eea0
test al, al
je 0x5e1604
mov eax, dword [ebp - 0x124]
mov dx, word [eax + 2]
mov eax, dword [0x66e8c0]
mov eax, dword [eax]
call fcn.0064eea0
test al, al
je 0x5e1604
mov eax, dword [ebp - 0x124]
mov dx, word [eax + 4]
mov eax, dword [0x66e8c0]
mov eax, dword [eax]
call fcn.0064eea0
test al, al
jne 0x5e14fa
cmp dword [edi + 8], 3
jne 0x5e1604
mov eax, dword [ebp - 0x124]
cmp word [eax], 0x2d
je 0x5e1604
lea ecx, [ebp - 0x2a7c]
mov edx, dword [edi + 8]
dec edx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.0064d54c
lea eax, [ebp - 0x2a7c]
push eax
mov eax, dword [0x5e1688]
push eax
lea ecx, [ebp - 0x2ab0]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
xor edx, edx
call fcn.0064d54c
lea ecx, [ebp - 0x2ab0]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d4e0c
mov dl, 1
mov eax, dword [0x542640]
call fcn.0055f5f4
mov dword [ebp - 0x58], eax
mov edx, dword [0x66e8a8]
mov edx, dword [edx + 0x88]
lea eax, [ebp - 0x2a98]
mov ecx, 0x5e16dc
call fcn.00403568
mov edx, dword [ebp - 0x2a98]
mov eax, dword [ebp - 0x58]
call fcn.0055fbd0
mov eax, dword [ebp - 0x58]
call fcn.004bf904
mov byte [ebp - 0x2a70], 2
mov dword [ebp - 0x2a6c], 0xd20
call fcn.0064e140
mov dword [ebp - 0x2a5c], eax
lea edx, [ebp - 0x2ab4]
mov eax, dword [ebp - 0x58]
call fcn.0055fcac
mov edx, dword [ebp - 0x2ab4]
lea ecx, [ebp - 0x2a98]
mov eax, 0x5e16fc
call fcn.00655b64
mov edx, dword [ebp - 0x2a98]
mov eax, dword [ebp - 0x2a5c]
call fcn.0064e44c
mov eax, dword [0x66f038]
or word [eax], 0x80
lea edx, [ebp - 0x2a70]
mov eax, dword [ebp - 8]
call fcn.005dcda8
mov eax, dword [0x66f038]
and word [eax], 0xff7f
mov eax, dword [ebp - 0x2a5c]
call fcn.004028c0
mov eax, dword [ebp - 0x58]
call fcn.004028c0
dec dword [0x6733d0]
inc ebx
inc esi
cmp bl, 0x11
jne 0x5de8c1
mov eax, dword [0x66ebb0]
mov edx, dword [ebp - 0x5c]
mov dword [eax], edx
call fcn.006538f0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5e1678
lea eax, [ebp - 0x2ab4]
call fcn.00403274
lea eax, [ebp - 0x2a98]
call fcn.00403274
lea eax, [ebp - 0x2a74]
call fcn.00403880
lea eax, [ebp - 0x2a70]
mov edx, dword [0x543790]
call fcn.00403f00
lea eax, [ebp - 0x24]
mov edx, 5
call fcn.00403898
ret