Function at 0x5da390
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 2
add esp, 0xfffff004
push eax
dec eax
jne 0x5da399
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 [0x53dc58]
call fcn.00403e48
xor eax, eax
push ebp
push 0x5dd205
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
call fcn.00652fac
mov eax, dword [0x6691ec]
mov eax, dword [eax]
mov dword [ebp - 0x5c], eax
mov eax, dword [0x6691ec]
or dword [eax], 0x100
mov eax, dword [0x6690d0]
mov eax, dword [eax]
mov edx, dword [ebp + 8]
call fcn.0046f41c
mov dword [ebp - 4], eax
mov eax, 0x66c570
call fcn.00403880
mov byte [0x66c566], 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, 0x66c528
mov eax, ebx
cmp al, 0x1f
ja 0x5da462
and eax, 0x7f
bt dword [ebp - 0x10], eax
jae case.default.0x5da47e
cmp byte [esi], 2
je case.default.0x5da47e
xor eax, eax
mov al, bl
cmp eax, 0x10
ja case.default.0x5da47e
jmp dword [eax*4 + 0x5da485]
mov eax, dword [0x669324]
test byte [eax], 0x20
je case.default.0x5da47e
mov al, 1
call fcn.0062ff34
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 0x5da512
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.005d942c
pop ecx
cmp dword [0x66c53c], 0
jl 0x5da789
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
mov edx, dword [0x66c540]
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0
jl 0x5da577
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 0x5da789
push ebp
lea eax, [ebp - 0x244]
call fcn.005d940c
pop ecx
test al, al
jne 0x5da789
push ebp
mov edx, dword [0x66c554]
mov eax, dword [0x66c550]
call fcn.005d9bb0
pop ecx
mov eax, dword [0x66c550]
mov dword [ebp - 0x240], eax
mov eax, dword [0x66c554]
sub eax, dword [0x66c550]
mov dword [ebp - 0x234], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 0xc
jne 0x5da68a
mov eax, dword [ebp - 4]
test byte [eax + 0x30], 4
je 0x5da68a
mov eax, dword [0x66c548]
call fcn.00403ab8
cmp eax, 1
jl 0x5da68a
mov dword [ebp - 0xa0], eax
mov eax, dword [0x66c548]
mov edx, dword [ebp - 0xa0]
cmp word [eax + edx*2 - 2], 0xa0
jne 0x5da677
cmp dword [ebp - 0xa0], 1
jle 0x5da63d
mov eax, dword [0x66c548]
mov edx, dword [ebp - 0xa0]
cmp word [eax + edx*2 - 4], 0xab
jne 0x5da63d
mov dx, 0xab
mov eax, dword [ebp - 4]
call fcn.0046e018
mov edx, dword [0x66c548]
mov ecx, dword [ebp - 0xa0]
mov word [edx + ecx*2 - 2], ax
jmp 0x5da677
mov eax, dword [0x66c548]
call fcn.00403ab8
cmp eax, dword [ebp - 0xa0]
jle 0x5da677
mov eax, dword [0x66c548]
mov edx, dword [ebp - 0xa0]
mov dx, word [eax + edx*2]
mov eax, dword [ebp - 4]
call fcn.0046e018
mov edx, dword [0x66c548]
mov ecx, dword [ebp - 0xa0]
mov word [edx + ecx*2 - 2], ax
dec dword [ebp - 0xa0]
cmp dword [ebp - 0xa0], 0
jne 0x5da5ed
lea eax, [ebp - 0x2a74]
push eax
lea edx, [ebp - 0x244]
mov cl, byte [0x5dd218]
mov eax, dword [ebp - 8]
call fcn.005bc004
mov edx, dword [ebp - 0x2a74]
mov eax, dword [0x66c548]
call fcn.00403bd0
je 0x5da700
mov eax, dword [0x66c548]
call fcn.0064d9c0
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [0x5dd21c]
push eax
lea ecx, [ebp - 0x2a7c]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [0x66c554]
call fcn.0064d660
lea ecx, [ebp - 0x2a7c]
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005d09b4
mov eax, dword [ebp - 0x28]
call fcn.004028c0
cmp dword [0x66c568], 0
jl 0x5da74d
mov eax, dword [0x66c568]
mov dword [ebp - 0x240], eax
mov eax, dword [0x66c56c]
sub eax, dword [0x66c568]
mov dword [ebp - 0x234], eax
lea eax, [ebp - 0x2f8]
call fcn.0053e6c8
mov dword [ebp - 0x2b4], 1
push ebp
lea edx, [ebp - 0x2f8]
lea eax, [ebp - 0x244]
call fcn.005d9894
pop ecx
push ebp
mov eax, dword [0x66c548]
call fcn.00403ab8
mov edx, eax
add edx, dword [0x66c550]
mov eax, dword [0x66c550]
call fcn.005d9c34
pop ecx
mov eax, dword [0x66c548]
call fcn.00403ab8
mov edx, dword [0x66c554]
sub edx, dword [0x66c550]
sub eax, edx
mov edx, dword [ebp - 0xc]
add dword [edx + 4], eax
mov al, 2
call fcn.0062ff34
jmp case.default.0x5da47e
mov eax, dword [0x669324]
test byte [eax], 2
je case.default.0x5da47e
push ebp
lea edx, [ebp - 0x2a94]
lea eax, [ebp - 0x14]
call fcn.005d9c74
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.005d9310
pop ecx
test al, al
je case.default.0x5da47e
push ebp
lea eax, [ebp - 0x244]
call fcn.005d940c
pop ecx
test al, al
jne case.default.0x5da47e
lea edx, [ebp - 0x244]
mov cl, 0xff
mov eax, dword [ebp - 8]
call fcn.005e1d18
test eax, eax
jne case.default.0x5da47e
mov eax, 0x66c570
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.005d9bb0
pop ecx
push 2
mov eax, dword [0x5dd21c]
push eax
push 0
lea ecx, [ebp - 0x264]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d2f6c
push ebp
mov eax, dword [ebp - 0x260]
dec eax
mov edx, dword [ebp - 0x250]
call fcn.005d9c34
pop ecx
jmp case.default.0x5da47e
mov eax, dword [0x669324]
test byte [eax], 8
je case.default.0x5da47e
lea eax, [ebp - 0x22c]
push eax
call sub.user32.dll_GetKeyboardState
test byte [ebp - 0x218], 1
jne 0x5da8c6
test byte [ebp + 0xc], 2
jne case.default.0x5da47e
push ebp
lea edx, [ebp - 0x2a94]
lea eax, [ebp - 0x14]
call fcn.005d9c74
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.005d9238
pop ecx
test al, al
je case.default.0x5da47e
push ebp
lea eax, [ebp - 0x244]
call fcn.005d940c
pop ecx
test al, al
jne case.default.0x5da47e
lea edx, [ebp - 0x244]
mov cl, 0xff
mov eax, dword [ebp - 8]
call fcn.005e1d18
test eax, eax
jne case.default.0x5da47e
mov eax, 0x66c570
mov edx, dword [ebp - 0x14]
call fcn.004038bc
lea edx, [ebp - 0x264]
lea eax, [ebp - 0x244]
call fcn.0053e1ac
push ebp
mov edx, dword [ebp - 0x250]
mov eax, dword [ebp - 0x260]
call fcn.005d9bb0
pop ecx
push 3
mov eax, dword [0x5dd21c]
push eax
push 0
lea ecx, [ebp - 0x264]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d2f6c
push ebp
mov edx, dword [ebp - 0x250]
mov eax, dword [ebp - 0x260]
call fcn.005d9c34
pop ecx
test byte [ebp + 0xc], 2
je case.default.0x5da47e
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.0x5da47e
mov eax, dword [0x669324]
test byte [eax], 4
je case.default.0x5da47e
push ebp
lea edx, [ebp - 0x2a94]
lea eax, [ebp - 0x14]
call fcn.005d9c74
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.0x5da47e
lea edx, [ebp - 0x244]
mov cl, 0xff
mov eax, dword [ebp - 8]
call fcn.005e1d18
test eax, eax
jne case.default.0x5da47e
mov eax, dword [ebp - 0x14]
call fcn.006538dc
test al, al
je case.default.0x5da47e
mov eax, dword [ebp - 0x14]
mov ax, word [eax]
push eax
call sub.user32.dll_IsCharAlphaW
test eax, eax
je case.default.0x5da47e
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005bc684
test al, al
jne case.default.0x5da47e
push ebp
mov eax, dword [ebp - 0x14]
call fcn.005d9130
pop ecx
test al, al
jne case.default.0x5da47e
lea ecx, [ebp - 0x2a94]
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005bc7b0
cmp dword [ebp - 0x2a84], 0
jne case.default.0x5da47e
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005bce00
test al, al
je case.default.0x5da47e
push ebp
lea eax, [ebp - 0x244]
call fcn.005d940c
pop ecx
test al, al
jne case.default.0x5da47e
mov eax, 0x66c570
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.005d9bb0
pop ecx
push 1
mov eax, dword [0x5dd21c]
push eax
push 0
lea ecx, [ebp - 0x264]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d2f6c
push ebp
mov edx, dword [ebp - 0x250]
mov eax, dword [ebp - 0x260]
call fcn.005d9c34
pop ecx
jmp case.default.0x5da47e
mov eax, dword [ebp - 4]
test byte [eax + 0x30], 1
je case.default.0x5da47e
mov eax, edi
call fcn.0054c05c
mov dword [ebp - 0xb4], eax
push ebp
lea edx, [ebp - 0x2a94]
xor eax, eax
call fcn.005d9c74
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 0x5dab84
lea ecx, [ebp - 0x244]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.005bbc98
cmp dword [ebp - 0x234], 0
jle 0x5dad05
mov eax, dword [ebp - 0x240]
add eax, dword [ebp - 0x234]
inc eax
mov edx, dword [ebp - 0xc]
cmp eax, dword [edx + 4]
jl 0x5dad05
cmp dword [ebp - 0x240], 0
jle 0x5dad05
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x240]
cmp word [eax + edx*2 - 2], 0x27
je 0x5dabe4
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x240]
cmp word [eax + edx*2 - 2], 0x2018
jne 0x5dad05
mov eax, dword [ebp - 0x240]
add eax, dword [ebp - 0x234]
mov edx, dword [ebp - 0xb4]
cmp word [edx + eax*2], 0x27
je 0x5dad05
mov eax, dword [ebp - 0x240]
add eax, dword [ebp - 0x234]
mov edx, dword [ebp - 0xb4]
cmp word [edx + eax*2], 0x2019
je 0x5dad05
lea ecx, [ebp - 0x2a98]
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005bbdc4
mov eax, dword [ebp - 0x2a98]
mov edx, 0x80000000
call fcn.006553dc
cmp eax, 0x80000000
jne 0x5dac86
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 9
jne 0x5dad05
lea eax, [ebp - 0x2a74]
push eax
lea edx, [ebp - 0x244]
mov cl, byte [0x5dd21c]
mov eax, dword [ebp - 8]
call fcn.005bc004
mov eax, dword [ebp - 0x2a74]
mov edx, 0x5dd224
call fcn.006537d4
test eax, eax
jne 0x5dad05
call fcn.0064d970
mov dword [ebp - 0x28], eax
mov edx, 0x2019
mov eax, dword [ebp - 0x28]
call fcn.0064dbd8
push ebp
mov eax, dword [ebp - 0x240]
dec eax
mov edx, dword [ebp - 0x240]
call fcn.005d9bb0
pop ecx
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [0x5dd21c]
push eax
lea ecx, [ebp - 0x2a7c]
mov edx, dword [ebp - 0x240]
dec edx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.0064d660
lea edx, [ebp - 0x2a7c]
lea ecx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005d09b4
push ebp
mov eax, dword [ebp - 0x240]
dec eax
mov edx, dword [ebp - 0x240]
call fcn.005d9c34
pop ecx
mov eax, dword [ebp - 0x28]
call fcn.004028c0
jmp 0x5daf85
mov eax, dword [ebp - 0xc]
cmp dword [eax + 4], 0
jle 0x5daf85
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 0x5dad33
sub ax, 5
jne 0x5daf85
call fcn.0064d970
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.005da1e8
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 + 0x665070]
lea edx, [ecx + edx*4]
movzx edx, word [edx + eax*2]
mov eax, dword [ebp - 0x28]
call fcn.0064dbd8
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0xb4]
mov ax, word [edx + eax*2 - 2]
mov word [0x66c562], ax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
mov ax, word [eax]
mov word [0x66c564], ax
mov byte [ebp - 0xaa], 0
mov ax, word [0x66c564]
mov word [ebp - 0xa2], ax
mov dx, word [ebp - 0xa2]
mov eax, dword [ebp - 4]
call fcn.0046e018
mov word [ebp - 0xa6], ax
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31], 3
jne 0x5dae09
mov ax, word [ebp - 0xa2]
sub ax, 0xab
je 0x5dadf5
sub ax, 0x10
je 0x5dae00
jmp 0x5dae09
mov word [ebp - 0xa2], 0xbb
jmp 0x5dae09
mov word [ebp - 0xa2], 0xab
mov eax, dword [0x669324]
test byte [eax], 0x10
je 0x5dae52
mov dx, word [0x66c564]
mov eax, dword [ebp - 4]
call fcn.0046df14
test al, al
je 0x5dae52
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
mov dx, word [ebp - 0xa2]
call fcn.0064e6b4
test al, al
jne 0x5dae52
movzx edx, word [ebp - 0xa6]
mov eax, dword [ebp - 0x28]
call fcn.0064dbd8
mov byte [ebp - 0xaa], 1
mov ax, word [0x66c564]
mov word [ebp - 0xa2], ax
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x31]
sub al, 2
je 0x5dae6f
dec al
je 0x5dae87
jmp 0x5daeb0
mov ax, word [ebp - 0xa2]
cmp ax, 0x201c
jne 0x5daeb0
mov word [ebp - 0xa2], 0x201d
jmp 0x5daeb0
mov ax, word [ebp - 0xa2]
sub ax, 0xab
je 0x5dae9c
sub ax, 0x10
je 0x5daea7
jmp 0x5daeb0
mov word [ebp - 0xa2], 0xbb
jmp 0x5daeb0
mov word [ebp - 0xa2], 0xab
mov eax, dword [0x669324]
test byte [eax], 0x10
je 0x5daf09
mov dx, word [0x66c564]
mov eax, dword [ebp - 4]
call fcn.0046df44
test al, al
je 0x5daf09
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov dx, word [ebp - 0xa2]
call fcn.0064e6b4
test al, al
jne 0x5daf09
movzx edx, word [0x66c564]
mov eax, dword [ebp - 0x28]
call fcn.0064dbd8
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.005d9bb0
pop ecx
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [0x5dd21c]
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.0064d660
lea edx, [ebp - 0x2a7c]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.005d09b4
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.005d9c34
pop ecx
mov eax, dword [ebp - 0x28]
call fcn.004028c0
cmp byte [ebp - 0xaa], 0
je 0x5daf85
mov eax, dword [ebp - 0xc]
inc dword [eax + 4]
dec dword [0x66c3b4]
jmp case.default.0x5da47e
mov eax, dword [0x669324]
test byte [eax], 0x10
je case.default.0x5da47e
mov eax, edi
call fcn.0054c05c
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 [0x669358]
mov eax, dword [eax]
call fcn.0064e6b4
test al, al
je 0x5db026
jmp 0x5dafdc
dec dword [ebp - 0x60]
cmp dword [ebp - 0x60], 0
jle 0x5db13c
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x60]
mov dx, word [eax + edx*2 - 2]
mov eax, dword [0x669904]
mov eax, dword [eax]
call fcn.0064e6b4
test al, al
jne 0x5dafd9
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x60]
mov ax, word [eax + edx*2 - 2]
sub ax, 9
je 0x5dafd9
sub ax, 6
je 0x5dafd9
jmp 0x5db13c
dec dword [ebp - 0x60]
cmp dword [ebp - 0x60], 0
jle 0x5db04f
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x60]
mov dx, word [eax + edx*2 - 2]
mov eax, dword [0x669904]
mov eax, dword [eax]
call fcn.0064e6b4
test al, al
jne 0x5db023
jmp 0x5db04f
inc dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
cmp eax, dword [edi + 8]
jge 0x5db074
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x64]
mov dx, word [eax + edx*2]
mov eax, dword [0x669904]
mov eax, dword [eax]
call fcn.0064e6b4
test al, al
jne 0x5db04c
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x64]
mov dx, word [eax + edx*2]
mov eax, dword [0x669358]
mov eax, dword [eax]
call fcn.0064e6b4
test al, al
jne 0x5db13c
mov eax, dword [ebp - 4]
test byte [eax + 0x30], 2
je 0x5db0d5
mov eax, dword [ebp - 0x64]
sub eax, dword [ebp - 0x60]
cmp eax, 2
jne 0x5db0d5
cmp dword [ebp - 0x60], 0
jle 0x5db0d5
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x60]
mov ax, word [eax + edx*2 - 2]
sub ax, 0x21
je 0x5db0cf
sub ax, 0xd
je 0x5db0cf
sub ax, 0x11
jne 0x5db0d5
sub dword [ebp - 0x64], 2
jmp 0x5db13c
mov eax, dword [ebp - 0x64]
cmp eax, dword [ebp - 0x60]
jle 0x5db13c
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.005cbc30
mov al, byte [ebp - 0x2aa0]
sub al, 2
jb 0x5db13c
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.005cbc30
mov al, byte [ebp - 0x2aa7]
test al, al
je 0x5db13c
sub al, 2
je 0x5db13c
inc dword [ebp - 0x60]
mov eax, dword [ebp - 0x64]
cmp eax, dword [ebp - 0x60]
jle 0x5db1ad
push ebp
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x60]
call fcn.005d9bb0
pop ecx
lea ecx, [ebp - 0x2a7c]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [ebp - 0x64]
call fcn.0064d660
lea eax, [ebp - 0x2a7c]
push eax
mov eax, dword [0x5dd21c]
push eax
lea ecx, [ebp - 0x2ab0]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [ebp - 0x60]
call fcn.0064d660
lea ecx, [ebp - 0x2ab0]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d054c
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x60]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x60]
mov dword [0x66c558], eax
mov eax, dword [ebp - 0x64]
mov dword [0x66c55c], eax
dec dword [0x66c3b4]
jmp case.default.0x5da47e
mov eax, dword [0x669324]
test byte [eax], 0x10
je case.default.0x5da47e
mov eax, dword [ebp - 0xc]
cmp dword [eax + 4], 0
jle case.default.0x5da47e
mov eax, edi
call fcn.0054c05c
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.0062fe60
test al, al
je 0x5db53b
cmp word [ebp - 0xa4], 0x27
je 0x5db53b
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.005d992c
test al, al
jne 0x5db53b
push ebp
mov eax, dword [ebp - 0xc]
call fcn.005d9984
pop ecx
test al, al
jne 0x5db53b
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.005cbc30
mov al, byte [ebp - 0xc1]
sub al, 2
je 0x5db27f
sub al, 2
jne 0x5db28d
mov al, byte [ebp - 0xc0]
sub al, 1
je 0x5db291
sub al, 3
je 0x5db291
xor eax, eax
jmp 0x5db293
mov al, 1
mov byte [ebp - 0xa7], al
cmp byte [ebp - 0xa7], 0
je 0x5db30e
cmp word [ebp - 0xa4], 0x28
jne 0x5db30e
lea ecx, [ebp - 0x244]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.005bbc98
cmp dword [ebp - 0x234], 0
je 0x5db30e
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x2a98]
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005bbdc4
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.00519b54
test al, al
je 0x5db30e
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.005cbc30
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0xbc]
mov ax, word [edx + eax*2]
call fcn.0062fe60
test al, al
jne 0x5db374
mov al, byte [ebp - 0xc6]
sub al, 2
je 0x5db366
sub al, 2
jne 0x5db374
mov al, byte [ebp - 0xc5]
sub al, 1
je 0x5db378
sub al, 3
je 0x5db378
xor eax, eax
jmp 0x5db37a
mov al, 1
mov byte [ebp - 0xa8], al
call fcn.0064d970
mov dword [ebp - 0x28], eax
mov edx, 0x20
mov eax, dword [ebp - 0x28]
call fcn.0064dbd8
mov cl, 0x7b
mov dl, 0x30
mov eax, dword [ebp - 8]
call fcn.0055f6fc
cmp byte [ebp - 0xa8], 0
je 0x5db40d
mov dx, word [ebp - 0xa4]
mov eax, dword [ebp - 4]
call fcn.0046df14
test al, al
je 0x5db3d5
mov dx, word [ebp - 0xa4]
mov eax, dword [ebp - 4]
call fcn.0046e018
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.005422e4
mov ecx, dword [0x5dd21c]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.005d16f8
cmp byte [ebp - 0xa7], 0
je 0x5db49a
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
mov word [eax], 0x20
cmp byte [ebp - 0xa9], 0
je 0x5db459
mov dx, word [ebp - 0xa4]
mov eax, dword [ebp - 4]
call fcn.0046df14
test al, al
jne 0x5db459
mov dx, word [ebp - 0xa4]
mov eax, dword [ebp - 4]
call fcn.0046e018
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.005422e4
mov ecx, dword [0x5dd21c]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.005d16f8
mov edx, 2
mov eax, dword [ebp - 8]
call fcn.0055f788
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.005d9bb0
pop ecx
mov al, byte [ebp - 0xa7]
and al, byte [ebp - 0xa8]
je 0x5db4e9
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.005d9c34
pop ecx
jmp 0x5db525
cmp byte [ebp - 0xa7], 0
je 0x5db508
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.005d9c34
pop ecx
jmp 0x5db525
cmp byte [ebp - 0xa8], 0
je 0x5db525
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.005d9c34
pop ecx
mov al, byte [ebp - 0xa7]
mov byte [0x66c560], al
mov al, byte [ebp - 0xa8]
mov byte [0x66c561], al
dec dword [0x66c3b4]
jmp case.default.0x5da47e
mov eax, dword [0x669324]
test byte [eax], 0x10
je case.default.0x5da47e
mov eax, dword [ebp - 4]
test byte [eax + 0x30], 4
je case.default.0x5da47e
mov eax, edi
call fcn.0054c05c
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 0x5db5a3
sub ax, 0x15
jne 0x5db7cc
mov dword [ebp - 0x9c], 0xffffffff
cmp dword [ebp - 0x68], 0
jle 0x5db5dc
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x68]
mov dx, word [eax + edx*2 - 2]
mov eax, dword [ebp - 4]
call fcn.0046df14
test al, al
je 0x5db5dc
mov eax, dword [ebp - 0x68]
dec eax
mov dword [ebp - 0x9c], eax
jmp 0x5db6d7
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x68]
mov dx, word [eax + edx*2 + 2]
mov eax, dword [ebp - 4]
call fcn.0046df44
test al, al
je 0x5db605
mov eax, dword [ebp - 0x68]
inc eax
mov dword [ebp - 0x9c], eax
jmp 0x5db6d7
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x68]
mov ax, word [eax + edx*2 + 2]
call fcn.0062fe60
test al, al
je 0x5db6d7
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.005cbc30
cmp byte [ebp - 0xd0], 0
je 0x5db6d7
cmp byte [ebp - 0xcd], 0
je 0x5db6d7
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.005cbc30
cmp byte [ebp - 0x2aa0], 0
je 0x5db6d7
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x68]
mov dx, word [eax + edx*2 + 2]
mov eax, dword [ebp - 4]
call fcn.0046df14
test al, al
jne 0x5db6d7
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x68]
mov ax, word [eax + edx*2 + 2]
sub ax, 0x22
je 0x5db6b8
sub ax, 5
jne 0x5db6cd
push ebp
mov eax, dword [ebp - 0x68]
inc eax
mov edx, dword [ebp - 0xcc]
call fcn.005da1e8
pop ecx
test al, al
je 0x5db6d7
mov eax, dword [ebp - 0x68]
inc eax
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0xffffffff
je 0x5db6ff
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x9c]
mov dx, word [eax + edx*2]
mov eax, dword [ebp - 4]
call fcn.0046e018
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 0x5db7cc
cmp word [ebp - 0xa6], 0xa0
jne 0x5db738
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x68]
cmp word [eax + edx*2], 0xb
je 0x5db7cc
call fcn.0064d970
mov dword [ebp - 0x28], eax
movzx edx, word [ebp - 0xa6]
mov eax, dword [ebp - 0x28]
call fcn.0064dbd8
push ebp
mov edx, dword [ebp - 0x68]
inc edx
mov eax, dword [ebp - 0x68]
call fcn.005d9bb0
pop ecx
mov dl, 0x30
mov eax, dword [ebp - 8]
call fcn.0055f6b0
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [0x5dd21c]
push eax
lea ecx, [ebp - 0x2a7c]
mov edx, dword [ebp - 0x68]
inc edx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.0064d660
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.0064d660
lea edx, [ebp - 0x2ab0]
mov eax, dword [ebp - 8]
pop ecx
call fcn.005d09b4
mov eax, dword [ebp - 8]
call fcn.0055f764
push ebp
mov edx, dword [ebp - 0x68]
inc edx
mov eax, dword [ebp - 0x68]
call fcn.005d9c34
pop ecx
mov eax, dword [ebp - 0x28]
call fcn.004028c0
dec dword [0x66c3b4]
jmp case.default.0x5da47e
mov eax, dword [0x669324]
test byte [eax], 0x40
je case.default.0x5da47e
push ebp
lea edx, [ebp - 0x2a94]
lea eax, [ebp - 0x14]
call fcn.005d9c74
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.0046dc98
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.0x5da47e
push ebp
lea eax, [ebp - 0x244]
call fcn.005d940c
pop ecx
test al, al
jne case.default.0x5da47e
mov eax, 0x66c570
mov edx, dword [ebp - 0x14]
call fcn.004038bc
lea eax, [ebp - 0x2f8]
call fcn.0053e6c8
mov dword [ebp - 0x2b4], 1
push ebp
lea edx, [ebp - 0x2f8]
lea eax, [ebp - 0x244]
call fcn.005d9894
pop ecx
test al, al
je case.default.0x5da47e
push ebp
mov edx, dword [ebp - 0x240]
add edx, dword [ebp - 0x234]
mov eax, dword [ebp - 0x240]
call fcn.005d9bb0
pop ecx
push ebp
mov edx, dword [ebp - 0x240]
add edx, dword [ebp - 0x234]
mov eax, dword [ebp - 0x240]
call fcn.005d9c34
pop ecx
jmp case.default.0x5da47e
mov eax, dword [0x669324]
test byte [eax], 0x80
je case.default.0x5da47e
xor edx, edx
mov ax, 0x2f
call fcn.0062fefc
push ebp
lea edx, [ebp - 0x2a94]
lea eax, [ebp - 0x14]
call fcn.005d9c74
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.0062fefc
mov eax, dword [ebp - 0x14]
call fcn.00403ab8
cmp eax, 3
jne case.default.0x5da47e
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.0x5da47e
mov eax, dword [ebp - 0x14]
mov ax, word [eax]
add eax, 0xffffffcf
sub ax, 9
jae case.default.0x5da47e
mov eax, dword [ebp - 0x14]
cmp word [eax + 2], 0x2f
jne case.default.0x5da47e
mov eax, dword [ebp - 0x14]
mov ax, word [eax + 4]
add eax, 0xffffffcf
sub ax, 9
jae case.default.0x5da47e
push ebp
mov eax, dword [ebp - 0x14]
call fcn.005d9130
pop ecx
test al, al
jne case.default.0x5da47e
mov eax, 0x66c570
mov edx, dword [ebp - 0x14]
call fcn.004038bc
mov dword [ebp - 0x234], 1
lea eax, [ebp - 0x2f8]
call fcn.0053e6c8
mov dword [ebp - 0x2b4], 1
push ebp
lea edx, [ebp - 0x2f8]
lea eax, [ebp - 0x244]
call fcn.005d9894
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.005d9894
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.005d9894
pop ecx
or al, byte [ebp - 0xab]
je case.default.0x5da47e
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.005d9bb0
pop ecx
push ebp
mov edx, dword [ebp - 0x9c]
add edx, 3
mov eax, dword [ebp - 0x9c]
call fcn.005d9c34
pop ecx
jmp case.default.0x5da47e
mov eax, dword [0x669324]
test byte [eax + 1], 1
je case.default.0x5da47e
push ebp
lea edx, [ebp - 0x2a94]
xor eax, eax
call fcn.005d9c74
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.0x5da47e
lea ecx, [ebp - 0x2a94]
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005bc7b0
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.0x5da47e
lea eax, [ebp - 0x14]
push eax
lea edx, [ebp - 0x244]
mov cl, byte [0x5dd21c]
mov eax, dword [ebp - 8]
call fcn.005bc004
push ebp
mov eax, dword [ebp - 0x14]
call fcn.005d9130
pop ecx
test al, al
jne case.default.0x5da47e
push ebp
lea eax, [ebp - 0x244]
call fcn.005d940c
pop ecx
test al, al
jne case.default.0x5da47e
lea edx, [ebp - 0x244]
mov cl, 0xd
mov eax, dword [ebp - 8]
call fcn.005e1d18
test eax, eax
jne case.default.0x5da47e
mov eax, 0x66c570
mov edx, dword [ebp - 0x14]
call fcn.004038bc
mov dl, 0x12
mov eax, dword [ebp - 8]
call fcn.0055f6b0
mov eax, dword [ebp - 0x244]
push eax
mov eax, dword [ebp - 0x240]
add eax, dword [ebp - 0x234]
push eax
mov al, byte [0x5dd22c]
push eax
mov ecx, dword [ebp - 0x240]
mov edx, dword [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005be038
mov eax, dword [0x6691ec]
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.0053e55c
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.005dfaf0
test eax, eax
je 0x5dbc75
mov dl, byte [0x5dd22c]
mov eax, dword [ebp - 8]
call fcn.005be874
mov dl, 0x24
mov eax, dword [ebp - 8]
call fcn.0055f718
lea eax, [ebp - 0x2f8]
push eax
mov al, byte [0x5dd21c]
push eax
lea ecx, [ebp - 0x264]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005c99a4
mov eax, dword [ebp - 8]
call fcn.0055f764
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 0x5dbda4
lea eax, [ebp - 0x2ab4]
mov edx, dword [0x66c570]
call fcn.004034e4
mov eax, dword [ebp - 0x2ab4]
lea ecx, [ebp - 0x2a98]
mov edx, 4
call fcn.00653e00
mov eax, dword [ebp - 0x2a98]
mov edx, 0x5dd238
call fcn.00653744
test eax, eax
jne 0x5dbcbc
mov byte [ebp - 0xae], 1
jmp 0x5dbd59
mov eax, dword [0x66c570]
call fcn.0062083c
test al, al
jne 0x5dbd52
mov dx, 0x40
mov eax, dword [0x66c570]
call fcn.0065306c
test eax, eax
jne 0x5dbd52
mov byte [ebp - 0xae], 1
mov dword [ebp - 0x9c], 5
mov eax, dword [0x6691d8]
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, 0x5dd248
call fcn.00403568
mov edx, dword [ebp - 0x2a98]
mov eax, dword [0x66c570]
pop ecx
call fcn.00653678
test eax, eax
jne 0x5dbd41
mov byte [ebp - 0xae], 0
jmp 0x5dbd59
add dword [ebp - 0x128], 4
dec dword [ebp - 0x9c]
jne 0x5dbcfc
jmp 0x5dbd59
mov byte [ebp - 0xae], 0
cmp byte [ebp - 0xae], 0
je 0x5dbd77
mov eax, 0x66c570
mov ecx, dword [0x66c570]
mov edx, 0x5dd250
call fcn.00403b24
lea eax, [ebp - 0x1c]
push eax
xor ecx, ecx
xor edx, edx
mov eax, dword [0x66c570]
call fcn.0053ff5c
xor ecx, ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
call fcn.005e0194
mov dl, byte [0x5dd22c]
mov eax, dword [ebp - 8]
call fcn.005be874
mov eax, dword [ebp - 8]
call fcn.0055f764
push ebp
mov edx, dword [ebp - 0x240]
add edx, dword [ebp - 0x234]
mov eax, dword [ebp - 0x240]
call fcn.005d9bb0
pop ecx
push ebp
mov edx, dword [ebp - 0x240]
mov eax, dword [ebp - 0x240]
call fcn.005d9c34
pop ecx
jmp case.default.0x5da47e
mov eax, dword [0x669324]
test byte [eax + 1], 2
je case.default.0x5da47e
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov edx, dword [edi + 8]
dec edx
cmp eax, edx
jl case.default.0x5da47e
cmp dword [edi + 0x37], 0
jne case.default.0x5da47e
mov edx, dword [ebp - 0xc]
mov cl, 0xd
mov eax, dword [ebp - 8]
call fcn.005e1d18
test eax, eax
jne case.default.0x5da47e
mov eax, edi
call fcn.0054c05c
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xd8]
cmp word [eax], 0xa
jne 0x5dc0de
mov eax, dword [0x669324]
test byte [eax + 2], 8
je 0x5dc9c9
mov eax, dword [ebp - 0xd8]
mov ax, word [eax + 2]
push eax
call sub.user32.dll_IsCharAlphaNumericW
test eax, eax
jne 0x5dbe8f
mov eax, dword [ebp - 0xd8]
mov ax, word [eax + 2]
sub ax, 9
je 0x5dbe77
sub ax, 0x17
jne 0x5dc9c9
mov eax, dword [ebp - 0xd8]
mov ax, word [eax + 4]
push eax
call sub.user32.dll_IsCharAlphaNumericW
test eax, eax
je 0x5dc9c9
lea ecx, [ebp - 0x2a7c]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
xor edx, edx
call fcn.0064d660
lea edx, [ebp - 0x2a7c]
mov eax, dword [ebp - 8]
call fcn.005bfd34
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 0x5dc9c9
mov eax, dword [ebp - 0xdc]
mov edx, dword [eax + 0x34]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x2c]
call fcn.0061ec08
cmp eax, 0x5a0
jg 0x5dc9c9
mov eax, dword [ebp - 0xdc]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x30]
call fcn.0061ec08
cmp eax, 0x5a0
jg 0x5dc9c9
xor eax, eax
call fcn.00500ce0
mov eax, dword [0x6690d8]
mov eax, dword [eax + 0x50]
mov edx, dword [0x669810]
mov edx, dword [edx + 8]
mov edx, dword [edx + 0x1c]
mov eax, dword [edx + eax*4]
call fcn.00541d30
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 0x5dbf84
sub ax, 0x17
je 0x5dbf84
xor edx, edx
jmp 0x5dbf86
mov dl, 1
and edx, 0x7f
inc edx
lea ecx, [ebp - 0x30]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.0064d660
lea eax, [ebp - 0x30]
push eax
mov eax, dword [0x5dd218]
push eax
lea ecx, [ebp - 0x2a7c]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
xor edx, edx
call fcn.0064d660
lea ecx, [ebp - 0x2a7c]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d054c
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 0x5dc050
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 [0x5dd21c]
mov edx, dword [ebp - 0x34]
call fcn.0055c1ac
test al, al
je 0x5dc047
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.005e94dc
test al, al
jne 0x5dc047
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 0x5dc050
dec dword [ebp - 0x6c]
cmp dword [ebp - 0x6c], 0xffffffff
jne 0x5dbfdf
cmp byte [ebp - 0xad], 0
jne 0x5dc06a
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x604]
mov edx, dword [ebp - 0x34]
call fcn.0064e1f0
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.005e972c
test byte [ebp + 0xc], 2
je 0x5dc0c2
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.005e972c
push ebp
mov edx, dword [ebp - 0x2c]
xor eax, eax
call fcn.005d9bb0
pop ecx
push ebp
xor edx, edx
xor eax, eax
call fcn.005d9c34
pop ecx
jmp 0x5dc9c9
mov dl, 0x59
mov eax, dword [ebp - 8]
call fcn.0055f6b0
lea ecx, [ebp - 0x2ac4]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, 1
call fcn.0053deb4
lea edx, [ebp - 0x2ac4]
lea ecx, [ebp - 0x2f8]
mov eax, dword [ebp - 8]
call fcn.005c04b4
mov eax, dword [ebp - 8]
call fcn.0055f764
lea edx, [ebp - 0x2ac4]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.0053debc
lea edx, [ebp - 0x2ac4]
mov cl, 0x39
mov eax, dword [ebp - 8]
call fcn.005e1d18
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0
je 0x5dc170
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 0x3c]
call fcn.00540968
cmp dword [ebp - 0x20], 0
je 0x5dc170
mov eax, dword [0x6696b4]
mov eax, dword [eax]
mov ecx, 1
mov edx, dword [ebp - 0x20]
call fcn.00623d14
mov dword [ebp - 0x2f8], eax
mov eax, dword [ebp - 0x2f8]
mov al, byte [eax + 0x11]
mov byte [ebp - 0xac], al
mov eax, dword [ebp - 0xd8]
cmp word [eax], 0x2a
jne 0x5dc196
mov eax, dword [0x669324]
test byte [eax + 2], 1
jne 0x5dc1f6
mov eax, dword [ebp - 0xd8]
cmp word [eax], 0x3e
jne 0x5dc1ad
mov eax, dword [0x669324]
test byte [eax + 2], 2
jne 0x5dc1f6
mov eax, dword [ebp - 0xd8]
mov dx, word [eax]
mov eax, dword [0x6690e4]
mov eax, dword [eax]
call fcn.0064e6b4
test al, al
je 0x5dc1d1
mov eax, dword [0x669324]
test byte [eax + 2], 4
jne 0x5dc1f6
cmp byte [ebp - 0xac], 0
je 0x5dc1e5
mov eax, dword [0x669324]
test byte [eax + 2], 0x10
jne 0x5dc1f6
mov eax, dword [ebp - 0xd8]
cmp word [eax], 0x2022
jne 0x5dc4df
mov eax, dword [ebp - 0xd8]
mov ax, word [eax + 2]
sub ax, 9
je 0x5dc210
sub ax, 0x17
jne 0x5dc4df
mov eax, dword [ebp - 0xd8]
cmp word [eax + 4], 0x20
jbe 0x5dc4df
push ebp
mov eax, dword [ebp - 0xd8]
call fcn.005da32c
pop ecx
test al, al
jne 0x5dc4df
xor eax, eax
call fcn.00500ce0
call fcn.00541d20
mov dword [ebp - 0x34], eax
mov eax, dword [0x6690d8]
mov eax, dword [eax + 0x50]
mov edx, dword [0x669810]
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.0055c134
mov eax, dword [ebp - 0x34]
add eax, 0x14
mov dword [ebp - 0xe4], eax
cmp byte [ebp - 0xac], 0
je 0x5dc304
mov dword [ebp - 0x74], 0x16
lea eax, [ebp - 0x2a0]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x12c], 0x66c1a8
mov eax, dword [ebp - 0x128]
mov eax, dword [eax]
mov edx, dword [ebp - 0x12c]
cmp eax, dword [edx]
je 0x5dc2c4
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 0x5dc29d
mov eax, dword [ebp - 0xe4]
add eax, 0x94
mov edx, dword [ebp - 0xd8]
mov dx, word [edx]
call fcn.00403990
mov eax, dword [ebp - 0xe4]
xor edx, edx
mov dword [eax + 8], edx
jmp 0x5dc38c
mov eax, dword [ebp - 0xd8]
mov dx, word [eax]
mov eax, dword [0x6690e4]
mov eax, dword [eax]
call fcn.0064e6b4
test al, al
je 0x5dc350
mov eax, dword [ebp - 0xe4]
add eax, 0x94
mov edx, dword [ebp - 0xd8]
mov dx, word [edx]
call fcn.00403990
mov eax, dword [ebp - 0xe4]
mov dword [eax + 0xc], 0x80000000
mov eax, dword [ebp - 0xe4]
xor edx, edx
mov dword [eax + 8], edx
jmp 0x5dc38c
mov eax, dword [ebp - 0xd8]
cmp word [eax], 0x3e
jne 0x5dc38c
mov eax, dword [ebp - 0xe4]
add eax, 0x94
mov edx, 0x5dd264
call fcn.004038bc
mov eax, dword [0x66979c]
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 0x5dc445
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 [0x5dd21c]
mov edx, dword [ebp - 0x34]
call fcn.0055c1ac
test al, al
je 0x5dc438
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.005e94dc
test al, al
jne 0x5dc438
mov eax, dword [ebp - 0x34]
cmp dword [eax + 0x1c], 0
je 0x5dc412
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 8]
call fcn.005f41c4
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 0x5dc445
dec dword [ebp - 0x6c]
cmp dword [ebp - 0x6c], 0xffffffff
jne 0x5dc3b9
cmp byte [ebp - 0xad], 0
jne 0x5dc45f
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x604]
mov edx, dword [ebp - 0x34]
call fcn.0064e1f0
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.005e972c
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 0x5dc4c0
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.005e972c
push ebp
mov edx, dword [ebp - 0x70]
sub edx, dword [edi + 8]
xor eax, eax
call fcn.005d9bb0
pop ecx
push ebp
xor edx, edx
xor eax, eax
call fcn.005d9c34
pop ecx
jmp 0x5dc9c9
mov dword [ebp - 0x78], 0xffffffff
mov eax, dword [edi + 8]
dec eax
test eax, eax
jl 0x5dc51b
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 0x5dc50d
sub dx, 0x17
jne 0x5dc512
mov dword [ebp - 0x78], eax
jmp 0x5dc51b
inc eax
dec dword [ebp - 0xe8]
jne 0x5dc4f7
cmp dword [ebp - 0x78], 0
jl 0x5dc9c9
cmp dword [ebp - 0x78], 0xc
jg 0x5dc9c9
lea eax, [ebp - 0x24]
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0xd8]
call fcn.00403964
call fcn.0064dfa0
mov dword [ebp - 0x40], eax
call fcn.0064dfa0
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.00541154
test al, al
je 0x5dc9b9
xor eax, eax
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov eax, dword [ebp - 8]
call fcn.0055e038
mov edx, eax
mov eax, dword [ebp - 8]
call fcn.0055e08c
mov dword [ebp - 0x84], eax
call fcn.0064dfa0
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 0x5dc6f7
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 0x5dc6e8
mov eax, dword [ebp - 0xec]
mov edx, dword [eax + 0x37]
mov eax, dword [ebp - 0x3c]
call fcn.0064e36c
test al, al
jne 0x5dc6e8
mov eax, dword [ebp - 0xec]
mov edx, dword [eax + 0x37]
mov eax, dword [ebp - 0x3c]
call fcn.0064e1f0
mov eax, dword [ebp - 0xec]
mov edx, dword [eax + 0x37]
mov eax, dword [ebp - 8]
call fcn.005e94dc
test al, al
jne 0x5dc6e8
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 0x5dc6e8
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x40]
call fcn.0064e36c
test al, al
je 0x5dc6e8
mov eax, dword [ebp - 0xf0]
mov eax, dword [eax + 0xa8]
mov edx, dword [ebp - 0x18]
call fcn.00403bd0
jne 0x5dc6e8
xor eax, eax
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x7c]
cmp eax, 0
jl 0x5dc6ad
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 0x5dc6a4
inc dword [ebp - 0x88]
dec dword [ebp - 0x80]
cmp dword [ebp - 0x80], 0xffffffff
jne 0x5dc67e
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x40]
call fcn.0064e308
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 0x5dc6e8
mov eax, dword [ebp - 0xec]
mov eax, dword [eax + 0x37]
mov dword [ebp - 0x38], eax
jmp 0x5dc6f7
dec dword [ebp - 0x7c]
inc dword [ebp - 0xe8]
jne 0x5dc5b2
mov eax, dword [ebp - 0x3c]
call fcn.0064e5c0
cmp dword [ebp - 0x38], 0
je 0x5dc710
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x34], eax
jmp 0x5dc938
xor eax, eax
mov dword [ebp - 0x34], eax
mov edx, 1
mov eax, dword [ebp - 0x44]
call fcn.0064e308
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0xffffffff
jne 0x5dc741
xor edx, edx
mov eax, dword [ebp - 0x44]
call fcn.0064e308
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0xffffffff
je 0x5dc938
call fcn.00541d20
mov dword [ebp - 0x34], eax
xor eax, eax
call fcn.00500ce0
mov byte [ebp - 0xad], 0
mov eax, dword [0x6690d8]
mov eax, dword [eax + 0x54]
mov edx, dword [0x669810]
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 0x5dc7da
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x18]
call fcn.00403bd0
jne 0x5dc7da
mov eax, dword [0x6690d8]
mov eax, dword [eax + 0x54]
mov edx, dword [0x669810]
mov edx, dword [edx + 0xc]
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + eax*4]
mov eax, dword [ebp - 0x34]
call fcn.0055c100
mov byte [ebp - 0xad], 1
cmp byte [ebp - 0xad], 0
jne 0x5dc8b1
xor eax, eax
mov dword [ebp - 0x98], eax
cmp byte [ebp - 0xad], 0
jne 0x5dc8b1
mov eax, dword [0x669810]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x18]
dec eax
test eax, eax
jl 0x5dc89e
inc eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0x6c], 0
mov eax, dword [0x669810]
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 0x5dc893
cmp dword [ebp - 0x98], 1
je 0x5dc871
mov eax, dword [ebp - 0xf8]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x18]
call fcn.00403bd0
jne 0x5dc893
mov eax, dword [0x669810]
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.0055c100
mov byte [ebp - 0xad], 1
jmp 0x5dc89e
inc dword [ebp - 0x6c]
dec dword [ebp - 0xe8]
jne 0x5dc81e
inc dword [ebp - 0x98]
cmp dword [ebp - 0x98], 2
jne 0x5dc7ef
cmp byte [ebp - 0xad], 0
jne 0x5dc8d9
mov eax, dword [0x6690d8]
mov eax, dword [eax + 0x54]
mov edx, dword [0x669810]
mov edx, dword [edx + 0xc]
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + eax*4]
mov eax, dword [ebp - 0x34]
call fcn.0055c100
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.0064e1f0
cmp dword [ebp - 0x34], 0
je 0x5dc9b9
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.005e972c
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 0x5dc99f
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.005e972c
push ebp
mov edx, dword [ebp - 0x70]
sub edx, dword [edi + 8]
xor eax, eax
call fcn.005d9bb0
pop ecx
push ebp
xor edx, edx
xor eax, eax
call fcn.005d9c34
pop ecx
mov eax, dword [ebp - 0x44]
call fcn.0064e5c0
mov eax, dword [ebp - 0x40]
call fcn.0064e5c0
dec dword [0x66c3b4]
jmp case.default.0x5da47e
mov eax, dword [ebp - 4]
cmp dword [eax + 0x28], 0xffffffff
je case.default.0x5da47e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
lea eax, [eax + eax*4]
mov edx, dword [0x669474]
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.0x5da47e
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.0x5da47e
push ebp
mov eax, ebx
call fcn.005d9d24
pop ecx
jmp case.default.0x5da47e
test byte [ebp + 0xc], 2
je case.default.0x5da47e
mov eax, dword [0x669324]
test byte [eax + 1], 8
je case.default.0x5da47e
cmp byte [edi + 0x3c], 0
jne case.default.0x5da47e
cmp dword [edi + 8], 3
jle case.default.0x5da47e
mov eax, edi
call fcn.0054c05c
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x104]
mov ax, word [eax]
sub ax, 0x2b
je 0x5dca8a
sub ax, 0x51
jne 0x5dcff8
lea eax, [ebp - 0x2a50]
mov edx, 0x2758
call fcn.00658544
mov dword [ebp - 0x9c], 1
jmp 0x5dcb29
imul eax, dword [ebp - 0x2978], 0x27
lea eax, [ebp + eax*4 - 0x2974]
jmp 0x5dcac5
inc dword [ebp - 0x9c]
inc dword [eax + 0x94]
mov edx, dword [ebp - 0x9c]
cmp edx, dword [edi + 8]
jge 0x5dcae3
mov edx, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x9c]
cmp word [edx + ecx*2], 9
je 0x5dcab9
cmp dword [eax + 0x94], 0
je 0x5dcb13
mov eax, dword [ebp - 0x9c]
cmp eax, dword [edi + 8]
je 0x5dcb13
mov eax, dword [ebp - 0x104]
mov edx, dword [ebp - 0x9c]
mov ax, word [eax + edx*2]
sub ax, 0x2b
je 0x5dcb1d
sub ax, 0x51
je 0x5dcb1d
xor eax, eax
mov dword [ebp - 0x2978], eax
jmp 0x5dcb42
inc dword [ebp - 0x9c]
inc dword [ebp - 0x2978]
mov eax, dword [edi + 8]
dec eax
cmp eax, dword [ebp - 0x9c]
jle 0x5dcb42
cmp dword [ebp - 0x2978], 0x3f
jl 0x5dcaa9
cmp dword [ebp - 0x2978], 0
jle 0x5dcff8
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 [0x669a00]
mov eax, dword [eax]
call fcn.00624b0c
xor eax, eax
mov dword [ebp - 0x90], eax
mov eax, dword [0x669a00]
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 0x5dcd94
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.0062008c
mov eax, dword [ebp - 0x10c]
mov dword [eax + 0x88], 0xff000000
cmp dword [ebp - 0x9c], 0
jne 0x5dcca5
mov eax, dword [ebp - 0x2a4c]
mov dword [ebp - 0x94], eax
jmp 0x5dcd16
mov eax, dword [ebp - 0x12c]
mov eax, dword [eax - 0x9c]
mov dword [ebp - 0x94], eax
jmp 0x5dcd16
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.00624870
cmp byte [ebp - 0x110], 4
je 0x5dcced
mov eax, dword [ebp - 0x114]
cmp eax, dword [ebp - 0x94]
jg 0x5dccf5
inc dword [ebp - 0x90]
jmp 0x5dcd16
mov eax, dword [ebp - 0x10c]
dec dword [eax + 0x94]
mov eax, dword [ebp - 0x10c]
cmp dword [eax + 0x94], 0
je 0x5dcd27
inc dword [ebp - 0x90]
mov eax, dword [ebp - 0x108]
mov eax, dword [eax + 0x18]
cmp eax, dword [ebp - 0x90]
jg 0x5dccb9
mov eax, dword [ebp - 0x108]
mov eax, dword [eax + 0x18]
cmp eax, dword [ebp - 0x90]
jle 0x5dcd65
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.00624870
mov eax, dword [ebp - 0x2a7c]
mov edx, dword [ebp - 0x10c]
mov dword [edx], eax
jmp 0x5dcd78
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 0x5dcbe1
lea ecx, [ebp - 0x2a7c]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [edi + 8]
call fcn.0064d660
lea eax, [ebp - 0x2a7c]
push eax
mov eax, dword [0x5dd21c]
push eax
lea ecx, [ebp - 0x2ab0]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
xor edx, edx
call fcn.0064d660
lea ecx, [ebp - 0x2ab0]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d054c
xor eax, eax
call fcn.00541a48
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x118]
cmp dword [eax + 0x18], 0
jle 0x5dcf58
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 0x5dcf4d
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 0x5dce6a
xor eax, eax
mov dword [ebp - 0xa0], eax
jmp 0x5dceb3
mov eax, dword [ebp - 0x2978]
dec eax
cmp eax, dword [ebp - 0x9c]
jne 0x5dce8e
mov eax, dword [ebp - 0x11c]
mov eax, dword [eax + 0xd8]
dec eax
mov dword [ebp - 0xa0], eax
jmp 0x5dceb3
mov eax, dword [ebp - 0x11c]
mov edx, dword [eax + 0xd8]
sub edx, 2
mov eax, dword [ebp - 0x9c]
call fcn.00652c54
call fcn.00652c64
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.0054166c
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 0x5dce57
mov eax, dword [ebp - 0x118]
call fcn.0064e574
mov eax, dword [ebp - 0x118]
call fcn.0064e5c0
call fcn.0064dfa0
mov dword [ebp - 0x48], eax
lea edx, [ebp - 0x2a50]
mov eax, dword [ebp - 0x48]
call fcn.0064e1f0
mov eax, dword [ebp - 0x48]
push eax
push 1
mov ecx, dword [ebp - 0x2978]
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.005eb4b8
mov eax, dword [ebp - 0x48]
call fcn.0064e5c0
lea ecx, [ebp - 0x264]
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov eax, dword [ebp - 8]
call fcn.005ec020
lea eax, [ebp - 0x29c]
call fcn.0053e728
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.005c96b0
mov byte [0x66c566], 1
dec dword [0x66c3b4]
jmp case.default.0x5da47e
mov eax, dword [0x669324]
test byte [eax + 1], 0x10
je case.default.0x5da47e
mov eax, edi
call fcn.0054c05c
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0x124]
mov dx, word [eax]
mov eax, dword [0x6690e4]
mov eax, dword [eax]
call fcn.0064e6b4
test al, al
je 0x5dd198
mov eax, dword [ebp - 0x124]
mov dx, word [eax + 2]
mov eax, dword [0x6690e4]
mov eax, dword [eax]
call fcn.0064e6b4
test al, al
je 0x5dd198
mov eax, dword [ebp - 0x124]
mov dx, word [eax + 4]
mov eax, dword [0x6690e4]
mov eax, dword [eax]
call fcn.0064e6b4
test al, al
jne 0x5dd08e
cmp dword [edi + 8], 3
jne 0x5dd198
mov eax, dword [ebp - 0x124]
cmp word [eax], 0x2d
je 0x5dd198
lea ecx, [ebp - 0x2a7c]
mov edx, dword [edi + 8]
dec edx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.0064d660
lea eax, [ebp - 0x2a7c]
push eax
mov eax, dword [0x5dd21c]
push eax
lea ecx, [ebp - 0x2ab0]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
xor edx, edx
call fcn.0064d660
lea ecx, [ebp - 0x2ab0]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d054c
mov dl, 1
mov eax, dword [0x53cb08]
call fcn.00559ba0
mov dword [ebp - 0x58], eax
mov edx, dword [0x6690d8]
mov edx, dword [edx + 0x88]
lea eax, [ebp - 0x2a98]
mov ecx, 0x5dd270
call fcn.00403568
mov edx, dword [ebp - 0x2a98]
mov eax, dword [ebp - 0x58]
call fcn.0055a17c
mov eax, dword [ebp - 0x58]
call fcn.004b067c
mov byte [ebp - 0x2a70], 2
mov dword [ebp - 0x2a6c], 0xd20
call fcn.0064d970
mov dword [ebp - 0x2a5c], eax
lea edx, [ebp - 0x2ab4]
mov eax, dword [ebp - 0x58]
call fcn.0055a258
mov edx, dword [ebp - 0x2ab4]
lea ecx, [ebp - 0x2a98]
mov eax, 0x5dd290
call fcn.0065521c
mov edx, dword [ebp - 0x2a98]
mov eax, dword [ebp - 0x2a5c]
call fcn.0064dc7c
mov eax, dword [0x6693a0]
or word [eax], 0x80
lea edx, [ebp - 0x2a70]
mov eax, dword [ebp - 8]
call fcn.005d88d0
mov eax, dword [0x6693a0]
and word [eax], 0xff7f
mov eax, dword [ebp - 0x2a5c]
call fcn.004028c0
mov eax, dword [ebp - 0x58]
call fcn.004028c0
dec dword [0x66c3b4]
inc ebx
inc esi
cmp bl, 0x11
jne 0x5da455
mov eax, dword [0x6691ec]
mov edx, dword [ebp - 0x5c]
mov dword [eax], edx
call fcn.00652ffc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5dd20c
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 [0x53dc58]
call fcn.00403f10
lea eax, [ebp - 0x24]
mov edx, 5
call fcn.00403898
ret