Function at 0x5e17c8
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 2
add esp, 0xfffff004
push eax
dec eax
jne 0x5e17d1
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 [0x546748]
call fcn.00403e48
xor eax, eax
push ebp
push 0x5e463d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
call fcn.00656ec8
mov eax, dword [0x671c18]
mov eax, dword [eax]
mov dword [ebp - 0x5c], eax
mov eax, dword [0x671c18]
or dword [eax], 0x100
mov eax, dword [0x671908]
mov eax, dword [eax]
mov edx, dword [ebp + 8]
call fcn.00483d40
mov dword [ebp - 4], eax
mov eax, 0x67658c
call fcn.00403880
mov byte [0x676582], 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, 0x676544
mov eax, ebx
cmp al, 0x1f
ja 0x5e189a
and eax, 0x7f
bt dword [ebp - 0x10], eax
jae case.default.0x5e18b6
cmp byte [esi], 2
je case.default.0x5e18b6
xor eax, eax
mov al, bl
cmp eax, 0x10
ja case.default.0x5e18b6
jmp dword [eax*4 + 0x5e18bd]
mov eax, dword [0x671f30]
test byte [eax], 0x20
je case.default.0x5e18b6
mov al, 1
call fcn.00633350
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 0x5e194a
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.005e0864
pop ecx
cmp dword [0x676558], 0
jl 0x5e1bc1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
mov edx, dword [0x67655c]
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0
jl 0x5e19af
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 0x5e1bc1
push ebp
lea eax, [ebp - 0x244]
call fcn.005e0844
pop ecx
test al, al
jne 0x5e1bc1
push ebp
mov edx, dword [0x676570]
mov eax, dword [0x67656c]
call fcn.005e0fe8
pop ecx
mov eax, dword [0x67656c]
mov dword [ebp - 0x240], eax
mov eax, dword [0x676570]
sub eax, dword [0x67656c]
mov dword [ebp - 0x234], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 0xc
jne 0x5e1ac2
mov eax, dword [ebp - 4]
test byte [eax + 0x30], 4
je 0x5e1ac2
mov eax, dword [0x676564]
call fcn.00403ab8
cmp eax, 1
jl 0x5e1ac2
mov dword [ebp - 0xa0], eax
mov eax, dword [0x676564]
mov edx, dword [ebp - 0xa0]
cmp word [eax + edx*2 - 2], 0xa0
jne 0x5e1aaf
cmp dword [ebp - 0xa0], 1
jle 0x5e1a75
mov eax, dword [0x676564]
mov edx, dword [ebp - 0xa0]
cmp word [eax + edx*2 - 4], 0xab
jne 0x5e1a75
mov dx, 0xab
mov eax, dword [ebp - 4]
call fcn.0048293c
mov edx, dword [0x676564]
mov ecx, dword [ebp - 0xa0]
mov word [edx + ecx*2 - 2], ax
jmp 0x5e1aaf
mov eax, dword [0x676564]
call fcn.00403ab8
cmp eax, dword [ebp - 0xa0]
jle 0x5e1aaf
mov eax, dword [0x676564]
mov edx, dword [ebp - 0xa0]
mov dx, word [eax + edx*2]
mov eax, dword [ebp - 4]
call fcn.0048293c
mov edx, dword [0x676564]
mov ecx, dword [ebp - 0xa0]
mov word [edx + ecx*2 - 2], ax
dec dword [ebp - 0xa0]
cmp dword [ebp - 0xa0], 0
jne 0x5e1a25
lea eax, [ebp - 0x2a74]
push eax
lea edx, [ebp - 0x244]
mov cl, byte [0x5e4650]
mov eax, dword [ebp - 8]
call fcn.005c3d5c
mov edx, dword [ebp - 0x2a74]
mov eax, dword [0x676564]
call fcn.00403bd0
je 0x5e1b38
mov eax, dword [0x676564]
call fcn.006517ec
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [0x5e4654]
push eax
lea ecx, [ebp - 0x2a7c]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [0x676570]
call fcn.00650bbc
lea ecx, [ebp - 0x2a7c]
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005d8248
mov eax, dword [ebp - 0x28]
call fcn.004028c0
cmp dword [0x676584], 0
jl 0x5e1b85
mov eax, dword [0x676584]
mov dword [ebp - 0x240], eax
mov eax, dword [0x676588]
sub eax, dword [0x676584]
mov dword [ebp - 0x234], eax
lea eax, [ebp - 0x2f8]
call fcn.005471b8
mov dword [ebp - 0x2b4], 1
push ebp
lea edx, [ebp - 0x2f8]
lea eax, [ebp - 0x244]
call fcn.005e0ccc
pop ecx
push ebp
mov eax, dword [0x676564]
call fcn.00403ab8
mov edx, eax
add edx, dword [0x67656c]
mov eax, dword [0x67656c]
call fcn.005e106c
pop ecx
mov eax, dword [0x676564]
call fcn.00403ab8
mov edx, dword [0x676570]
sub edx, dword [0x67656c]
sub eax, edx
mov edx, dword [ebp - 0xc]
add dword [edx + 4], eax
mov al, 2
call fcn.00633350
jmp case.default.0x5e18b6
mov eax, dword [0x671f30]
test byte [eax], 2
je case.default.0x5e18b6
push ebp
lea edx, [ebp - 0x2a94]
lea eax, [ebp - 0x14]
call fcn.005e10ac
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.005e0748
pop ecx
test al, al
je case.default.0x5e18b6
push ebp
lea eax, [ebp - 0x244]
call fcn.005e0844
pop ecx
test al, al
jne case.default.0x5e18b6
lea edx, [ebp - 0x244]
mov cl, 0xff
mov eax, dword [ebp - 8]
call fcn.005e8ec8
test eax, eax
jne case.default.0x5e18b6
mov eax, 0x67658c
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.005e0fe8
pop ecx
push 2
mov eax, dword [0x5e4654]
push eax
push 0
lea ecx, [ebp - 0x264]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005da668
push ebp
mov eax, dword [ebp - 0x260]
dec eax
mov edx, dword [ebp - 0x250]
call fcn.005e106c
pop ecx
jmp case.default.0x5e18b6
mov eax, dword [0x671f30]
test byte [eax], 8
je case.default.0x5e18b6
lea eax, [ebp - 0x22c]
push eax
call sub.user32.dll_GetKeyboardState
test byte [ebp - 0x218], 1
jne 0x5e1cfe
test byte [ebp + 0xc], 2
jne case.default.0x5e18b6
push ebp
lea edx, [ebp - 0x2a94]
lea eax, [ebp - 0x14]
call fcn.005e10ac
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.005e0670
pop ecx
test al, al
je case.default.0x5e18b6
push ebp
lea eax, [ebp - 0x244]
call fcn.005e0844
pop ecx
test al, al
jne case.default.0x5e18b6
lea edx, [ebp - 0x244]
mov cl, 0xff
mov eax, dword [ebp - 8]
call fcn.005e8ec8
test eax, eax
jne case.default.0x5e18b6
mov eax, 0x67658c
mov edx, dword [ebp - 0x14]
call fcn.004038bc
lea edx, [ebp - 0x264]
lea eax, [ebp - 0x244]
call fcn.00546c9c
push ebp
mov edx, dword [ebp - 0x250]
mov eax, dword [ebp - 0x260]
call fcn.005e0fe8
pop ecx
push 3
mov eax, dword [0x5e4654]
push eax
push 0
lea ecx, [ebp - 0x264]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005da668
push ebp
mov edx, dword [ebp - 0x250]
mov eax, dword [ebp - 0x260]
call fcn.005e106c
pop ecx
test byte [ebp + 0xc], 2
je case.default.0x5e18b6
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.0x5e18b6
mov eax, dword [0x671f30]
test byte [eax], 4
je case.default.0x5e18b6
push ebp
lea edx, [ebp - 0x2a94]
lea eax, [ebp - 0x14]
call fcn.005e10ac
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.0x5e18b6
lea edx, [ebp - 0x244]
mov cl, 0xff
mov eax, dword [ebp - 8]
call fcn.005e8ec8
test eax, eax
jne case.default.0x5e18b6
mov eax, dword [ebp - 0x14]
call fcn.0065784c
test al, al
je case.default.0x5e18b6
mov eax, dword [ebp - 0x14]
mov ax, word [eax]
push eax
call sub.user32.dll_IsCharAlphaW
test eax, eax
je case.default.0x5e18b6
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005c4374
test al, al
jne case.default.0x5e18b6
push ebp
mov eax, dword [ebp - 0x14]
call fcn.005e0568
pop ecx
test al, al
jne case.default.0x5e18b6
lea ecx, [ebp - 0x2a94]
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005c44a0
cmp dword [ebp - 0x2a84], 0
jne case.default.0x5e18b6
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005c4af0
test al, al
je case.default.0x5e18b6
push ebp
lea eax, [ebp - 0x244]
call fcn.005e0844
pop ecx
test al, al
jne case.default.0x5e18b6
mov eax, 0x67658c
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.005e0fe8
pop ecx
push 1
mov eax, dword [0x5e4654]
push eax
push 0
lea ecx, [ebp - 0x264]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005da668
push ebp
mov edx, dword [ebp - 0x250]
mov eax, dword [ebp - 0x260]
call fcn.005e106c
pop ecx
jmp case.default.0x5e18b6
mov eax, dword [ebp - 4]
test byte [eax + 0x30], 1
je case.default.0x5e18b6
mov eax, edi
call fcn.00554ab0
mov dword [ebp - 0xb4], eax
push ebp
lea edx, [ebp - 0x2a94]
xor eax, eax
call fcn.005e10ac
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 0x5e1fbc
lea ecx, [ebp - 0x244]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.005c39f0
cmp dword [ebp - 0x234], 0
jle 0x5e213d
mov eax, dword [ebp - 0x240]
add eax, dword [ebp - 0x234]
inc eax
mov edx, dword [ebp - 0xc]
cmp eax, dword [edx + 4]
jl 0x5e213d
cmp dword [ebp - 0x240], 0
jle 0x5e213d
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x240]
cmp word [eax + edx*2 - 2], 0x27
je 0x5e201c
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x240]
cmp word [eax + edx*2 - 2], 0x2018
jne 0x5e213d
mov eax, dword [ebp - 0x240]
add eax, dword [ebp - 0x234]
mov edx, dword [ebp - 0xb4]
cmp word [edx + eax*2], 0x27
je 0x5e213d
mov eax, dword [ebp - 0x240]
add eax, dword [ebp - 0x234]
mov edx, dword [ebp - 0xb4]
cmp word [edx + eax*2], 0x2019
je 0x5e213d
lea ecx, [ebp - 0x2a98]
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005c3b1c
mov eax, dword [ebp - 0x2a98]
mov edx, 0x80000000
call fcn.0065934c
cmp eax, 0x80000000
jne 0x5e20be
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 9
jne 0x5e213d
lea eax, [ebp - 0x2a74]
push eax
lea edx, [ebp - 0x244]
mov cl, byte [0x5e4654]
mov eax, dword [ebp - 8]
call fcn.005c3d5c
mov eax, dword [ebp - 0x2a74]
mov edx, 0x5e465c
call fcn.00657744
test eax, eax
jne 0x5e213d
call fcn.0065179c
mov dword [ebp - 0x28], eax
mov edx, 0x2019
mov eax, dword [ebp - 0x28]
call fcn.00651a04
push ebp
mov eax, dword [ebp - 0x240]
dec eax
mov edx, dword [ebp - 0x240]
call fcn.005e0fe8
pop ecx
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [0x5e4654]
push eax
lea ecx, [ebp - 0x2a7c]
mov edx, dword [ebp - 0x240]
dec edx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.00650bbc
lea edx, [ebp - 0x2a7c]
lea ecx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005d8248
push ebp
mov eax, dword [ebp - 0x240]
dec eax
mov edx, dword [ebp - 0x240]
call fcn.005e106c
pop ecx
mov eax, dword [ebp - 0x28]
call fcn.004028c0
jmp 0x5e23bd
mov eax, dword [ebp - 0xc]
cmp dword [eax + 4], 0
jle 0x5e23bd
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 0x5e216b
sub ax, 5
jne 0x5e23bd
call fcn.0065179c
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.005e1620
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 + 0x66d864]
lea edx, [ecx + edx*4]
movzx edx, word [edx + eax*2]
mov eax, dword [ebp - 0x28]
call fcn.00651a04
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0xb4]
mov ax, word [edx + eax*2 - 2]
mov word [0x67657e], ax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
mov ax, word [eax]
mov word [0x676580], ax
mov byte [ebp - 0xaa], 0
mov ax, word [0x676580]
mov word [ebp - 0xa2], ax
mov dx, word [ebp - 0xa2]
mov eax, dword [ebp - 4]
call fcn.0048293c
mov word [ebp - 0xa6], ax
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31], 3
jne 0x5e2241
mov ax, word [ebp - 0xa2]
sub ax, 0xab
je 0x5e222d
sub ax, 0x10
je 0x5e2238
jmp 0x5e2241
mov word [ebp - 0xa2], 0xbb
jmp 0x5e2241
mov word [ebp - 0xa2], 0xab
mov eax, dword [0x671f30]
test byte [eax], 0x10
je 0x5e228a
mov dx, word [0x676580]
mov eax, dword [ebp - 4]
call fcn.00482838
test al, al
je 0x5e228a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
mov dx, word [ebp - 0xa2]
call fcn.006524fc
test al, al
jne 0x5e228a
movzx edx, word [ebp - 0xa6]
mov eax, dword [ebp - 0x28]
call fcn.00651a04
mov byte [ebp - 0xaa], 1
mov ax, word [0x676580]
mov word [ebp - 0xa2], ax
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x31]
sub al, 2
je 0x5e22a7
dec al
je 0x5e22bf
jmp 0x5e22e8
mov ax, word [ebp - 0xa2]
cmp ax, 0x201c
jne 0x5e22e8
mov word [ebp - 0xa2], 0x201d
jmp 0x5e22e8
mov ax, word [ebp - 0xa2]
sub ax, 0xab
je 0x5e22d4
sub ax, 0x10
je 0x5e22df
jmp 0x5e22e8
mov word [ebp - 0xa2], 0xbb
jmp 0x5e22e8
mov word [ebp - 0xa2], 0xab
mov eax, dword [0x671f30]
test byte [eax], 0x10
je 0x5e2341
mov dx, word [0x676580]
mov eax, dword [ebp - 4]
call fcn.00482868
test al, al
je 0x5e2341
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov dx, word [ebp - 0xa2]
call fcn.006524fc
test al, al
jne 0x5e2341
movzx edx, word [0x676580]
mov eax, dword [ebp - 0x28]
call fcn.00651a04
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.005e0fe8
pop ecx
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [0x5e4654]
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.00650bbc
lea edx, [ebp - 0x2a7c]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.005d8248
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.005e106c
pop ecx
mov eax, dword [ebp - 0x28]
call fcn.004028c0
cmp byte [ebp - 0xaa], 0
je 0x5e23bd
mov eax, dword [ebp - 0xc]
inc dword [eax + 4]
dec dword [0x6763d0]
jmp case.default.0x5e18b6
mov eax, dword [0x671f30]
test byte [eax], 0x10
je case.default.0x5e18b6
mov eax, edi
call fcn.00554ab0
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 [0x671fc4]
mov eax, dword [eax]
call fcn.006524fc
test al, al
je 0x5e245e
jmp 0x5e2414
dec dword [ebp - 0x60]
cmp dword [ebp - 0x60], 0
jle 0x5e2574
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x60]
mov dx, word [eax + edx*2 - 2]
mov eax, dword [0x672d14]
mov eax, dword [eax]
call fcn.006524fc
test al, al
jne 0x5e2411
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x60]
mov ax, word [eax + edx*2 - 2]
sub ax, 9
je 0x5e2411
sub ax, 6
je 0x5e2411
jmp 0x5e2574
dec dword [ebp - 0x60]
cmp dword [ebp - 0x60], 0
jle 0x5e2487
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x60]
mov dx, word [eax + edx*2 - 2]
mov eax, dword [0x672d14]
mov eax, dword [eax]
call fcn.006524fc
test al, al
jne 0x5e245b
jmp 0x5e2487
inc dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
cmp eax, dword [edi + 8]
jge 0x5e24ac
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x64]
mov dx, word [eax + edx*2]
mov eax, dword [0x672d14]
mov eax, dword [eax]
call fcn.006524fc
test al, al
jne 0x5e2484
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x64]
mov dx, word [eax + edx*2]
mov eax, dword [0x671fc4]
mov eax, dword [eax]
call fcn.006524fc
test al, al
jne 0x5e2574
mov eax, dword [ebp - 4]
test byte [eax + 0x30], 2
je 0x5e250d
mov eax, dword [ebp - 0x64]
sub eax, dword [ebp - 0x60]
cmp eax, 2
jne 0x5e250d
cmp dword [ebp - 0x60], 0
jle 0x5e250d
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x60]
mov ax, word [eax + edx*2 - 2]
sub ax, 0x21
je 0x5e2507
sub ax, 0xd
je 0x5e2507
sub ax, 0x11
jne 0x5e250d
sub dword [ebp - 0x64], 2
jmp 0x5e2574
mov eax, dword [ebp - 0x64]
cmp eax, dword [ebp - 0x60]
jle 0x5e2574
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.005d3644
mov al, byte [ebp - 0x2aa0]
sub al, 2
jb 0x5e2574
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.005d3644
mov al, byte [ebp - 0x2aa7]
test al, al
je 0x5e2574
sub al, 2
je 0x5e2574
inc dword [ebp - 0x60]
mov eax, dword [ebp - 0x64]
cmp eax, dword [ebp - 0x60]
jle 0x5e25e5
push ebp
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x60]
call fcn.005e0fe8
pop ecx
lea ecx, [ebp - 0x2a7c]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [ebp - 0x64]
call fcn.00650bbc
lea eax, [ebp - 0x2a7c]
push eax
mov eax, dword [0x5e4654]
push eax
lea ecx, [ebp - 0x2ab0]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [ebp - 0x60]
call fcn.00650bbc
lea ecx, [ebp - 0x2ab0]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d7de0
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x60]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x60]
mov dword [0x676574], eax
mov eax, dword [ebp - 0x64]
mov dword [0x676578], eax
dec dword [0x6763d0]
jmp case.default.0x5e18b6
mov eax, dword [0x671f30]
test byte [eax], 0x10
je case.default.0x5e18b6
mov eax, dword [ebp - 0xc]
cmp dword [eax + 4], 0
jle case.default.0x5e18b6
mov eax, edi
call fcn.00554ab0
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.0063327c
test al, al
je 0x5e2973
cmp word [ebp - 0xa4], 0x27
je 0x5e2973
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.005e0d64
test al, al
jne 0x5e2973
push ebp
mov eax, dword [ebp - 0xc]
call fcn.005e0dbc
pop ecx
test al, al
jne 0x5e2973
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.005d3644
mov al, byte [ebp - 0xc1]
sub al, 2
je 0x5e26b7
sub al, 2
jne 0x5e26c5
mov al, byte [ebp - 0xc0]
sub al, 1
je 0x5e26c9
sub al, 3
je 0x5e26c9
xor eax, eax
jmp 0x5e26cb
mov al, 1
mov byte [ebp - 0xa7], al
cmp byte [ebp - 0xa7], 0
je 0x5e2746
cmp word [ebp - 0xa4], 0x28
jne 0x5e2746
lea ecx, [ebp - 0x244]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.005c39f0
cmp dword [ebp - 0x234], 0
je 0x5e2746
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x2a98]
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005c3b1c
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.005230cc
test al, al
je 0x5e2746
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.005d3644
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0xbc]
mov ax, word [edx + eax*2]
call fcn.0063327c
test al, al
jne 0x5e27ac
mov al, byte [ebp - 0xc6]
sub al, 2
je 0x5e279e
sub al, 2
jne 0x5e27ac
mov al, byte [ebp - 0xc5]
sub al, 1
je 0x5e27b0
sub al, 3
je 0x5e27b0
xor eax, eax
jmp 0x5e27b2
mov al, 1
mov byte [ebp - 0xa8], al
call fcn.0065179c
mov dword [ebp - 0x28], eax
mov edx, 0x20
mov eax, dword [ebp - 0x28]
call fcn.00651a04
mov cl, 0x7b
mov dl, 0x30
mov eax, dword [ebp - 8]
call fcn.00567f54
cmp byte [ebp - 0xa8], 0
je 0x5e2845
mov dx, word [ebp - 0xa4]
mov eax, dword [ebp - 4]
call fcn.00482838
test al, al
je 0x5e280d
mov dx, word [ebp - 0xa4]
mov eax, dword [ebp - 4]
call fcn.0048293c
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.0054ad38
mov ecx, dword [0x5e4654]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.005d8f8c
cmp byte [ebp - 0xa7], 0
je 0x5e28d2
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
mov word [eax], 0x20
cmp byte [ebp - 0xa9], 0
je 0x5e2891
mov dx, word [ebp - 0xa4]
mov eax, dword [ebp - 4]
call fcn.00482838
test al, al
jne 0x5e2891
mov dx, word [ebp - 0xa4]
mov eax, dword [ebp - 4]
call fcn.0048293c
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.0054ad38
mov ecx, dword [0x5e4654]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.005d8f8c
mov edx, 2
mov eax, dword [ebp - 8]
call fcn.00567fe0
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.005e0fe8
pop ecx
mov al, byte [ebp - 0xa7]
and al, byte [ebp - 0xa8]
je 0x5e2921
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.005e106c
pop ecx
jmp 0x5e295d
cmp byte [ebp - 0xa7], 0
je 0x5e2940
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.005e106c
pop ecx
jmp 0x5e295d
cmp byte [ebp - 0xa8], 0
je 0x5e295d
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.005e106c
pop ecx
mov al, byte [ebp - 0xa7]
mov byte [0x67657c], al
mov al, byte [ebp - 0xa8]
mov byte [0x67657d], al
dec dword [0x6763d0]
jmp case.default.0x5e18b6
mov eax, dword [0x671f30]
test byte [eax], 0x10
je case.default.0x5e18b6
mov eax, dword [ebp - 4]
test byte [eax + 0x30], 4
je case.default.0x5e18b6
mov eax, edi
call fcn.00554ab0
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 0x5e29db
sub ax, 0x15
jne 0x5e2c04
mov dword [ebp - 0x9c], 0xffffffff
cmp dword [ebp - 0x68], 0
jle 0x5e2a14
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x68]
mov dx, word [eax + edx*2 - 2]
mov eax, dword [ebp - 4]
call fcn.00482838
test al, al
je 0x5e2a14
mov eax, dword [ebp - 0x68]
dec eax
mov dword [ebp - 0x9c], eax
jmp 0x5e2b0f
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x68]
mov dx, word [eax + edx*2 + 2]
mov eax, dword [ebp - 4]
call fcn.00482868
test al, al
je 0x5e2a3d
mov eax, dword [ebp - 0x68]
inc eax
mov dword [ebp - 0x9c], eax
jmp 0x5e2b0f
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x68]
mov ax, word [eax + edx*2 + 2]
call fcn.0063327c
test al, al
je 0x5e2b0f
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.005d3644
cmp byte [ebp - 0xd0], 0
je 0x5e2b0f
cmp byte [ebp - 0xcd], 0
je 0x5e2b0f
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.005d3644
cmp byte [ebp - 0x2aa0], 0
je 0x5e2b0f
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x68]
mov dx, word [eax + edx*2 + 2]
mov eax, dword [ebp - 4]
call fcn.00482838
test al, al
jne 0x5e2b0f
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x68]
mov ax, word [eax + edx*2 + 2]
sub ax, 0x22
je 0x5e2af0
sub ax, 5
jne 0x5e2b05
push ebp
mov eax, dword [ebp - 0x68]
inc eax
mov edx, dword [ebp - 0xcc]
call fcn.005e1620
pop ecx
test al, al
je 0x5e2b0f
mov eax, dword [ebp - 0x68]
inc eax
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0xffffffff
je 0x5e2b37
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x9c]
mov dx, word [eax + edx*2]
mov eax, dword [ebp - 4]
call fcn.0048293c
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 0x5e2c04
cmp word [ebp - 0xa6], 0xa0
jne 0x5e2b70
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x68]
cmp word [eax + edx*2], 0xb
je 0x5e2c04
call fcn.0065179c
mov dword [ebp - 0x28], eax
movzx edx, word [ebp - 0xa6]
mov eax, dword [ebp - 0x28]
call fcn.00651a04
push ebp
mov edx, dword [ebp - 0x68]
inc edx
mov eax, dword [ebp - 0x68]
call fcn.005e0fe8
pop ecx
mov dl, 0x30
mov eax, dword [ebp - 8]
call fcn.00567f08
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [0x5e4654]
push eax
lea ecx, [ebp - 0x2a7c]
mov edx, dword [ebp - 0x68]
inc edx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.00650bbc
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.00650bbc
lea edx, [ebp - 0x2ab0]
mov eax, dword [ebp - 8]
pop ecx
call fcn.005d8248
mov eax, dword [ebp - 8]
call fcn.00567fbc
push ebp
mov edx, dword [ebp - 0x68]
inc edx
mov eax, dword [ebp - 0x68]
call fcn.005e106c
pop ecx
mov eax, dword [ebp - 0x28]
call fcn.004028c0
dec dword [0x6763d0]
jmp case.default.0x5e18b6
mov eax, dword [0x671f30]
test byte [eax], 0x40
je case.default.0x5e18b6
push ebp
lea edx, [ebp - 0x2a94]
lea eax, [ebp - 0x14]
call fcn.005e10ac
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.004825bc
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.0x5e18b6
push ebp
lea eax, [ebp - 0x244]
call fcn.005e0844
pop ecx
test al, al
jne case.default.0x5e18b6
mov eax, 0x67658c
mov edx, dword [ebp - 0x14]
call fcn.004038bc
lea eax, [ebp - 0x2f8]
call fcn.005471b8
mov dword [ebp - 0x2b4], 1
push ebp
lea edx, [ebp - 0x2f8]
lea eax, [ebp - 0x244]
call fcn.005e0ccc
pop ecx
test al, al
je case.default.0x5e18b6
push ebp
mov edx, dword [ebp - 0x240]
add edx, dword [ebp - 0x234]
mov eax, dword [ebp - 0x240]
call fcn.005e0fe8
pop ecx
push ebp
mov edx, dword [ebp - 0x240]
add edx, dword [ebp - 0x234]
mov eax, dword [ebp - 0x240]
call fcn.005e106c
pop ecx
jmp case.default.0x5e18b6
mov eax, dword [0x671f30]
test byte [eax], 0x80
je case.default.0x5e18b6
xor edx, edx
mov ax, 0x2f
call fcn.00633318
push ebp
lea edx, [ebp - 0x2a94]
lea eax, [ebp - 0x14]
call fcn.005e10ac
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.00633318
mov eax, dword [ebp - 0x14]
call fcn.00403ab8
cmp eax, 3
jne case.default.0x5e18b6
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.0x5e18b6
mov eax, dword [ebp - 0x14]
mov ax, word [eax]
add eax, 0xffffffcf
sub ax, 9
jae case.default.0x5e18b6
mov eax, dword [ebp - 0x14]
cmp word [eax + 2], 0x2f
jne case.default.0x5e18b6
mov eax, dword [ebp - 0x14]
mov ax, word [eax + 4]
add eax, 0xffffffcf
sub ax, 9
jae case.default.0x5e18b6
push ebp
mov eax, dword [ebp - 0x14]
call fcn.005e0568
pop ecx
test al, al
jne case.default.0x5e18b6
mov eax, 0x67658c
mov edx, dword [ebp - 0x14]
call fcn.004038bc
mov dword [ebp - 0x234], 1
lea eax, [ebp - 0x2f8]
call fcn.005471b8
mov dword [ebp - 0x2b4], 1
push ebp
lea edx, [ebp - 0x2f8]
lea eax, [ebp - 0x244]
call fcn.005e0ccc
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.005e0ccc
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.005e0ccc
pop ecx
or al, byte [ebp - 0xab]
je case.default.0x5e18b6
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.005e0fe8
pop ecx
push ebp
mov edx, dword [ebp - 0x9c]
add edx, 3
mov eax, dword [ebp - 0x9c]
call fcn.005e106c
pop ecx
jmp case.default.0x5e18b6
mov eax, dword [0x671f30]
test byte [eax + 1], 1
je case.default.0x5e18b6
push ebp
lea edx, [ebp - 0x2a94]
xor eax, eax
call fcn.005e10ac
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.0x5e18b6
lea ecx, [ebp - 0x2a94]
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005c44a0
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.0x5e18b6
lea eax, [ebp - 0x14]
push eax
lea edx, [ebp - 0x244]
mov cl, byte [0x5e4654]
mov eax, dword [ebp - 8]
call fcn.005c3d5c
push ebp
mov eax, dword [ebp - 0x14]
call fcn.005e0568
pop ecx
test al, al
jne case.default.0x5e18b6
push ebp
lea eax, [ebp - 0x244]
call fcn.005e0844
pop ecx
test al, al
jne case.default.0x5e18b6
lea edx, [ebp - 0x244]
mov cl, 0xd
mov eax, dword [ebp - 8]
call fcn.005e8ec8
test eax, eax
jne case.default.0x5e18b6
mov eax, 0x67658c
mov edx, dword [ebp - 0x14]
call fcn.004038bc
mov dl, 0x12
mov eax, dword [ebp - 8]
call fcn.00567f08
mov eax, dword [ebp - 0x244]
push eax
mov eax, dword [ebp - 0x240]
add eax, dword [ebp - 0x234]
push eax
mov al, byte [0x5e4664]
push eax
mov ecx, dword [ebp - 0x240]
mov edx, dword [ebp - 0x244]
mov eax, dword [ebp - 8]
call fcn.005c5d28
mov eax, dword [0x671c18]
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.0054704c
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.005e6ea0
test eax, eax
je 0x5e30ad
mov dl, byte [0x5e4664]
mov eax, dword [ebp - 8]
call fcn.005c6564
mov dl, 0x24
mov eax, dword [ebp - 8]
call fcn.00567f70
lea eax, [ebp - 0x2f8]
push eax
mov al, byte [0x5e4654]
push eax
lea ecx, [ebp - 0x264]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d13b8
mov eax, dword [ebp - 8]
call fcn.00567fbc
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 0x5e31dc
lea eax, [ebp - 0x2ab4]
mov edx, dword [0x67658c]
call fcn.004034e4
mov eax, dword [ebp - 0x2ab4]
lea ecx, [ebp - 0x2a98]
mov edx, 4
call fcn.00657d70
mov eax, dword [ebp - 0x2a98]
mov edx, 0x5e4670
call fcn.006576b4
test eax, eax
jne 0x5e30f4
mov byte [ebp - 0xae], 1
jmp 0x5e3191
mov eax, dword [0x67658c]
call fcn.00624208
test al, al
jne 0x5e318a
mov dx, 0x40
mov eax, dword [0x67658c]
call fcn.00656f88
test eax, eax
jne 0x5e318a
mov byte [ebp - 0xae], 1
mov dword [ebp - 0x9c], 5
mov eax, dword [0x671bf8]
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, 0x5e4680
call fcn.00403568
mov edx, dword [ebp - 0x2a98]
mov eax, dword [0x67658c]
pop ecx
call fcn.006575e8
test eax, eax
jne 0x5e3179
mov byte [ebp - 0xae], 0
jmp 0x5e3191
add dword [ebp - 0x128], 4
dec dword [ebp - 0x9c]
jne 0x5e3134
jmp 0x5e3191
mov byte [ebp - 0xae], 0
cmp byte [ebp - 0xae], 0
je 0x5e31af
mov eax, 0x67658c
mov ecx, dword [0x67658c]
mov edx, 0x5e4688
call fcn.00403b24
lea eax, [ebp - 0x1c]
push eax
xor ecx, ecx
xor edx, edx
mov eax, dword [0x67658c]
call fcn.005489b0
xor ecx, ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
call fcn.005e73b8
mov dl, byte [0x5e4664]
mov eax, dword [ebp - 8]
call fcn.005c6564
mov eax, dword [ebp - 8]
call fcn.00567fbc
push ebp
mov edx, dword [ebp - 0x240]
add edx, dword [ebp - 0x234]
mov eax, dword [ebp - 0x240]
call fcn.005e0fe8
pop ecx
push ebp
mov edx, dword [ebp - 0x240]
mov eax, dword [ebp - 0x240]
call fcn.005e106c
pop ecx
jmp case.default.0x5e18b6
mov eax, dword [0x671f30]
test byte [eax + 1], 2
je case.default.0x5e18b6
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov edx, dword [edi + 8]
dec edx
cmp eax, edx
jl case.default.0x5e18b6
cmp dword [edi + 0x37], 0
jne case.default.0x5e18b6
mov edx, dword [ebp - 0xc]
mov cl, 0xd
mov eax, dword [ebp - 8]
call fcn.005e8ec8
test eax, eax
jne case.default.0x5e18b6
mov eax, edi
call fcn.00554ab0
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xd8]
cmp word [eax], 0xa
jne 0x5e3516
mov eax, dword [0x671f30]
test byte [eax + 2], 8
je 0x5e3e01
mov eax, dword [ebp - 0xd8]
mov ax, word [eax + 2]
push eax
call sub.user32.dll_IsCharAlphaNumericW
test eax, eax
jne 0x5e32c7
mov eax, dword [ebp - 0xd8]
mov ax, word [eax + 2]
sub ax, 9
je 0x5e32af
sub ax, 0x17
jne 0x5e3e01
mov eax, dword [ebp - 0xd8]
mov ax, word [eax + 4]
push eax
call sub.user32.dll_IsCharAlphaNumericW
test eax, eax
je 0x5e3e01
lea ecx, [ebp - 0x2a7c]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
xor edx, edx
call fcn.00650bbc
lea edx, [ebp - 0x2a7c]
mov eax, dword [ebp - 8]
call fcn.005c7a24
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 0x5e3e01
mov eax, dword [ebp - 0xdc]
mov edx, dword [eax + 0x34]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x2c]
call fcn.00622538
cmp eax, 0x5a0
jg 0x5e3e01
mov eax, dword [ebp - 0xdc]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x30]
call fcn.00622538
cmp eax, 0x5a0
jg 0x5e3e01
xor eax, eax
call fcn.0050bbb8
mov eax, dword [0x671910]
mov eax, dword [eax + 0x50]
mov edx, dword [0x672ad0]
mov edx, dword [edx + 8]
mov edx, dword [edx + 0x1c]
mov eax, dword [edx + eax*4]
call fcn.0054a784
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 0x5e33bc
sub ax, 0x17
je 0x5e33bc
xor edx, edx
jmp 0x5e33be
mov dl, 1
and edx, 0x7f
inc edx
lea ecx, [ebp - 0x30]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.00650bbc
lea eax, [ebp - 0x30]
push eax
mov eax, dword [0x5e4650]
push eax
lea ecx, [ebp - 0x2a7c]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
xor edx, edx
call fcn.00650bbc
lea ecx, [ebp - 0x2a7c]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d7de0
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 0x5e3488
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 [0x5e4654]
mov edx, dword [ebp - 0x34]
call fcn.00564bb8
test al, al
je 0x5e347f
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.005f02c0
test al, al
jne 0x5e347f
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 0x5e3488
dec dword [ebp - 0x6c]
cmp dword [ebp - 0x6c], 0xffffffff
jne 0x5e3417
cmp byte [ebp - 0xad], 0
jne 0x5e34a2
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x604]
mov edx, dword [ebp - 0x34]
call fcn.00652038
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.005f0510
test byte [ebp + 0xc], 2
je 0x5e34fa
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.005f0510
push ebp
mov edx, dword [ebp - 0x2c]
xor eax, eax
call fcn.005e0fe8
pop ecx
push ebp
xor edx, edx
xor eax, eax
call fcn.005e106c
pop ecx
jmp 0x5e3e01
mov dl, 0x59
mov eax, dword [ebp - 8]
call fcn.00567f08
lea ecx, [ebp - 0x2ac4]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, 1
call fcn.005469a4
lea edx, [ebp - 0x2ac4]
lea ecx, [ebp - 0x2f8]
mov eax, dword [ebp - 8]
call fcn.005c81a4
mov eax, dword [ebp - 8]
call fcn.00567fbc
lea edx, [ebp - 0x2ac4]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.005469ac
lea edx, [ebp - 0x2ac4]
mov cl, 0x39
mov eax, dword [ebp - 8]
call fcn.005e8ec8
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0
je 0x5e35a8
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 0x3c]
call fcn.005493bc
cmp dword [ebp - 0x20], 0
je 0x5e35a8
mov eax, dword [0x67279c]
mov eax, dword [eax]
mov ecx, 1
mov edx, dword [ebp - 0x20]
call fcn.00627574
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 0x5e35ce
mov eax, dword [0x671f30]
test byte [eax + 2], 1
jne 0x5e362e
mov eax, dword [ebp - 0xd8]
cmp word [eax], 0x3e
jne 0x5e35e5
mov eax, dword [0x671f30]
test byte [eax + 2], 2
jne 0x5e362e
mov eax, dword [ebp - 0xd8]
mov dx, word [eax]
mov eax, dword [0x671928]
mov eax, dword [eax]
call fcn.006524fc
test al, al
je 0x5e3609
mov eax, dword [0x671f30]
test byte [eax + 2], 4
jne 0x5e362e
cmp byte [ebp - 0xac], 0
je 0x5e361d
mov eax, dword [0x671f30]
test byte [eax + 2], 0x10
jne 0x5e362e
mov eax, dword [ebp - 0xd8]
cmp word [eax], 0x2022
jne 0x5e3917
mov eax, dword [ebp - 0xd8]
mov ax, word [eax + 2]
sub ax, 9
je 0x5e3648
sub ax, 0x17
jne 0x5e3917
mov eax, dword [ebp - 0xd8]
cmp word [eax + 4], 0x20
jbe 0x5e3917
push ebp
mov eax, dword [ebp - 0xd8]
call fcn.005e1764
pop ecx
test al, al
jne 0x5e3917
xor eax, eax
call fcn.0050bbb8
call fcn.0054a774
mov dword [ebp - 0x34], eax
mov eax, dword [0x671910]
mov eax, dword [eax + 0x50]
mov edx, dword [0x672ad0]
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.00564b40
mov eax, dword [ebp - 0x34]
add eax, 0x14
mov dword [ebp - 0xe4], eax
cmp byte [ebp - 0xac], 0
je 0x5e373c
mov dword [ebp - 0x74], 0x16
lea eax, [ebp - 0x2a0]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x12c], 0x6761c4
mov eax, dword [ebp - 0x128]
mov eax, dword [eax]
mov edx, dword [ebp - 0x12c]
cmp eax, dword [edx]
je 0x5e36fc
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 0x5e36d5
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 0x5e37c4
mov eax, dword [ebp - 0xd8]
mov dx, word [eax]
mov eax, dword [0x671928]
mov eax, dword [eax]
call fcn.006524fc
test al, al
je 0x5e3788
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 0x5e37c4
mov eax, dword [ebp - 0xd8]
cmp word [eax], 0x3e
jne 0x5e37c4
mov eax, dword [ebp - 0xe4]
add eax, 0x94
mov edx, 0x5e469c
call fcn.004038bc
mov eax, dword [0x67299c]
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 0x5e387d
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 [0x5e4654]
mov edx, dword [ebp - 0x34]
call fcn.00564bb8
test al, al
je 0x5e3870
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.005f02c0
test al, al
jne 0x5e3870
mov eax, dword [ebp - 0x34]
cmp dword [eax + 0x1c], 0
je 0x5e384a
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 8]
call fcn.005faecc
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 0x5e387d
dec dword [ebp - 0x6c]
cmp dword [ebp - 0x6c], 0xffffffff
jne 0x5e37f1
cmp byte [ebp - 0xad], 0
jne 0x5e3897
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x604]
mov edx, dword [ebp - 0x34]
call fcn.00652038
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.005f0510
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 0x5e38f8
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.005f0510
push ebp
mov edx, dword [ebp - 0x70]
sub edx, dword [edi + 8]
xor eax, eax
call fcn.005e0fe8
pop ecx
push ebp
xor edx, edx
xor eax, eax
call fcn.005e106c
pop ecx
jmp 0x5e3e01
mov dword [ebp - 0x78], 0xffffffff
mov eax, dword [edi + 8]
dec eax
test eax, eax
jl 0x5e3953
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 0x5e3945
sub dx, 0x17
jne 0x5e394a
mov dword [ebp - 0x78], eax
jmp 0x5e3953
inc eax
dec dword [ebp - 0xe8]
jne 0x5e392f
cmp dword [ebp - 0x78], 0
jl 0x5e3e01
cmp dword [ebp - 0x78], 0xc
jg 0x5e3e01
lea eax, [ebp - 0x24]
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0xd8]
call fcn.00403964
call fcn.00651de8
mov dword [ebp - 0x40], eax
call fcn.00651de8
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.00549ba8
test al, al
je 0x5e3df1
xor eax, eax
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov eax, dword [ebp - 8]
call fcn.00566a44
mov edx, eax
mov eax, dword [ebp - 8]
call fcn.00566a98
mov dword [ebp - 0x84], eax
call fcn.00651de8
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 0x5e3b2f
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 0x5e3b20
mov eax, dword [ebp - 0xec]
mov edx, dword [eax + 0x37]
mov eax, dword [ebp - 0x3c]
call fcn.006521b4
test al, al
jne 0x5e3b20
mov eax, dword [ebp - 0xec]
mov edx, dword [eax + 0x37]
mov eax, dword [ebp - 0x3c]
call fcn.00652038
mov eax, dword [ebp - 0xec]
mov edx, dword [eax + 0x37]
mov eax, dword [ebp - 8]
call fcn.005f02c0
test al, al
jne 0x5e3b20
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 0x5e3b20
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x40]
call fcn.006521b4
test al, al
je 0x5e3b20
mov eax, dword [ebp - 0xf0]
mov eax, dword [eax + 0xa8]
mov edx, dword [ebp - 0x18]
call fcn.00403bd0
jne 0x5e3b20
xor eax, eax
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x7c]
cmp eax, 0
jl 0x5e3ae5
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 0x5e3adc
inc dword [ebp - 0x88]
dec dword [ebp - 0x80]
cmp dword [ebp - 0x80], 0xffffffff
jne 0x5e3ab6
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x40]
call fcn.00652150
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 0x5e3b20
mov eax, dword [ebp - 0xec]
mov eax, dword [eax + 0x37]
mov dword [ebp - 0x38], eax
jmp 0x5e3b2f
dec dword [ebp - 0x7c]
inc dword [ebp - 0xe8]
jne 0x5e39ea
mov eax, dword [ebp - 0x3c]
call fcn.00652408
cmp dword [ebp - 0x38], 0
je 0x5e3b48
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x34], eax
jmp 0x5e3d70
xor eax, eax
mov dword [ebp - 0x34], eax
mov edx, 1
mov eax, dword [ebp - 0x44]
call fcn.00652150
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0xffffffff
jne 0x5e3b79
xor edx, edx
mov eax, dword [ebp - 0x44]
call fcn.00652150
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0xffffffff
je 0x5e3d70
call fcn.0054a774
mov dword [ebp - 0x34], eax
xor eax, eax
call fcn.0050bbb8
mov byte [ebp - 0xad], 0
mov eax, dword [0x671910]
mov eax, dword [eax + 0x54]
mov edx, dword [0x672ad0]
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 0x5e3c12
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x18]
call fcn.00403bd0
jne 0x5e3c12
mov eax, dword [0x671910]
mov eax, dword [eax + 0x54]
mov edx, dword [0x672ad0]
mov edx, dword [edx + 0xc]
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + eax*4]
mov eax, dword [ebp - 0x34]
call fcn.00564b0c
mov byte [ebp - 0xad], 1
cmp byte [ebp - 0xad], 0
jne 0x5e3ce9
xor eax, eax
mov dword [ebp - 0x98], eax
cmp byte [ebp - 0xad], 0
jne 0x5e3ce9
mov eax, dword [0x672ad0]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x18]
dec eax
test eax, eax
jl 0x5e3cd6
inc eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0x6c], 0
mov eax, dword [0x672ad0]
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 0x5e3ccb
cmp dword [ebp - 0x98], 1
je 0x5e3ca9
mov eax, dword [ebp - 0xf8]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x18]
call fcn.00403bd0
jne 0x5e3ccb
mov eax, dword [0x672ad0]
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.00564b0c
mov byte [ebp - 0xad], 1
jmp 0x5e3cd6
inc dword [ebp - 0x6c]
dec dword [ebp - 0xe8]
jne 0x5e3c56
inc dword [ebp - 0x98]
cmp dword [ebp - 0x98], 2
jne 0x5e3c27
cmp byte [ebp - 0xad], 0
jne 0x5e3d11
mov eax, dword [0x671910]
mov eax, dword [eax + 0x54]
mov edx, dword [0x672ad0]
mov edx, dword [edx + 0xc]
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + eax*4]
mov eax, dword [ebp - 0x34]
call fcn.00564b0c
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.00652038
cmp dword [ebp - 0x34], 0
je 0x5e3df1
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.005f0510
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 0x5e3dd7
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.005f0510
push ebp
mov edx, dword [ebp - 0x70]
sub edx, dword [edi + 8]
xor eax, eax
call fcn.005e0fe8
pop ecx
push ebp
xor edx, edx
xor eax, eax
call fcn.005e106c
pop ecx
mov eax, dword [ebp - 0x44]
call fcn.00652408
mov eax, dword [ebp - 0x40]
call fcn.00652408
dec dword [0x6763d0]
jmp case.default.0x5e18b6
mov eax, dword [ebp - 4]
cmp dword [eax + 0x28], 0xffffffff
je case.default.0x5e18b6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
lea eax, [eax + eax*4]
mov edx, dword [0x672260]
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.0x5e18b6
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.0x5e18b6
push ebp
mov eax, ebx
call fcn.005e115c
pop ecx
jmp case.default.0x5e18b6
test byte [ebp + 0xc], 2
je case.default.0x5e18b6
mov eax, dword [0x671f30]
test byte [eax + 1], 8
je case.default.0x5e18b6
cmp byte [edi + 0x3c], 0
jne case.default.0x5e18b6
cmp dword [edi + 8], 3
jle case.default.0x5e18b6
mov eax, edi
call fcn.00554ab0
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x104]
mov ax, word [eax]
sub ax, 0x2b
je 0x5e3ec2
sub ax, 0x51
jne 0x5e4430
lea eax, [ebp - 0x2a50]
mov edx, 0x2758
call fcn.0065c4dc
mov dword [ebp - 0x9c], 1
jmp 0x5e3f61
imul eax, dword [ebp - 0x2978], 0x27
lea eax, [ebp + eax*4 - 0x2974]
jmp 0x5e3efd
inc dword [ebp - 0x9c]
inc dword [eax + 0x94]
mov edx, dword [ebp - 0x9c]
cmp edx, dword [edi + 8]
jge 0x5e3f1b
mov edx, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x9c]
cmp word [edx + ecx*2], 9
je 0x5e3ef1
cmp dword [eax + 0x94], 0
je 0x5e3f4b
mov eax, dword [ebp - 0x9c]
cmp eax, dword [edi + 8]
je 0x5e3f4b
mov eax, dword [ebp - 0x104]
mov edx, dword [ebp - 0x9c]
mov ax, word [eax + edx*2]
sub ax, 0x2b
je 0x5e3f55
sub ax, 0x51
je 0x5e3f55
xor eax, eax
mov dword [ebp - 0x2978], eax
jmp 0x5e3f7a
inc dword [ebp - 0x9c]
inc dword [ebp - 0x2978]
mov eax, dword [edi + 8]
dec eax
cmp eax, dword [ebp - 0x9c]
jle 0x5e3f7a
cmp dword [ebp - 0x2978], 0x3f
jl 0x5e3ee1
cmp dword [ebp - 0x2978], 0
jle 0x5e4430
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 [0x672ff0]
mov eax, dword [eax]
call fcn.006282f4
xor eax, eax
mov dword [ebp - 0x90], eax
mov eax, dword [0x672ff0]
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 0x5e41cc
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.00623a58
mov eax, dword [ebp - 0x10c]
mov dword [eax + 0x88], 0xff000000
cmp dword [ebp - 0x9c], 0
jne 0x5e40dd
mov eax, dword [ebp - 0x2a4c]
mov dword [ebp - 0x94], eax
jmp 0x5e414e
mov eax, dword [ebp - 0x12c]
mov eax, dword [eax - 0x9c]
mov dword [ebp - 0x94], eax
jmp 0x5e414e
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.00628058
cmp byte [ebp - 0x110], 4
je 0x5e4125
mov eax, dword [ebp - 0x114]
cmp eax, dword [ebp - 0x94]
jg 0x5e412d
inc dword [ebp - 0x90]
jmp 0x5e414e
mov eax, dword [ebp - 0x10c]
dec dword [eax + 0x94]
mov eax, dword [ebp - 0x10c]
cmp dword [eax + 0x94], 0
je 0x5e415f
inc dword [ebp - 0x90]
mov eax, dword [ebp - 0x108]
mov eax, dword [eax + 0x18]
cmp eax, dword [ebp - 0x90]
jg 0x5e40f1
mov eax, dword [ebp - 0x108]
mov eax, dword [eax + 0x18]
cmp eax, dword [ebp - 0x90]
jle 0x5e419d
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.00628058
mov eax, dword [ebp - 0x2a7c]
mov edx, dword [ebp - 0x10c]
mov dword [edx], eax
jmp 0x5e41b0
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 0x5e4019
lea ecx, [ebp - 0x2a7c]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [edi + 8]
call fcn.00650bbc
lea eax, [ebp - 0x2a7c]
push eax
mov eax, dword [0x5e4654]
push eax
lea ecx, [ebp - 0x2ab0]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
xor edx, edx
call fcn.00650bbc
lea ecx, [ebp - 0x2ab0]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d7de0
xor eax, eax
call fcn.0054a49c
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x118]
cmp dword [eax + 0x18], 0
jle 0x5e4390
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 0x5e4385
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 0x5e42a2
xor eax, eax
mov dword [ebp - 0xa0], eax
jmp 0x5e42eb
mov eax, dword [ebp - 0x2978]
dec eax
cmp eax, dword [ebp - 0x9c]
jne 0x5e42c6
mov eax, dword [ebp - 0x11c]
mov eax, dword [eax + 0xd8]
dec eax
mov dword [ebp - 0xa0], eax
jmp 0x5e42eb
mov eax, dword [ebp - 0x11c]
mov edx, dword [eax + 0xd8]
sub edx, 2
mov eax, dword [ebp - 0x9c]
call fcn.00656b70
call fcn.00656b80
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.0054a0c0
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 0x5e428f
mov eax, dword [ebp - 0x118]
call fcn.006523bc
mov eax, dword [ebp - 0x118]
call fcn.00652408
call fcn.00651de8
mov dword [ebp - 0x48], eax
lea edx, [ebp - 0x2a50]
mov eax, dword [ebp - 0x48]
call fcn.00652038
mov eax, dword [ebp - 0x48]
push eax
push 1
mov ecx, dword [ebp - 0x2978]
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.005f229c
mov eax, dword [ebp - 0x48]
call fcn.00652408
lea ecx, [ebp - 0x264]
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov eax, dword [ebp - 8]
call fcn.005f2e04
lea eax, [ebp - 0x29c]
call fcn.00547218
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.005d10c4
mov byte [0x676582], 1
dec dword [0x6763d0]
jmp case.default.0x5e18b6
mov eax, dword [0x671f30]
test byte [eax + 1], 0x10
je case.default.0x5e18b6
mov eax, edi
call fcn.00554ab0
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0x124]
mov dx, word [eax]
mov eax, dword [0x671928]
mov eax, dword [eax]
call fcn.006524fc
test al, al
je 0x5e45d0
mov eax, dword [ebp - 0x124]
mov dx, word [eax + 2]
mov eax, dword [0x671928]
mov eax, dword [eax]
call fcn.006524fc
test al, al
je 0x5e45d0
mov eax, dword [ebp - 0x124]
mov dx, word [eax + 4]
mov eax, dword [0x671928]
mov eax, dword [eax]
call fcn.006524fc
test al, al
jne 0x5e44c6
cmp dword [edi + 8], 3
jne 0x5e45d0
mov eax, dword [ebp - 0x124]
cmp word [eax], 0x2d
je 0x5e45d0
lea ecx, [ebp - 0x2a7c]
mov edx, dword [edi + 8]
dec edx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.00650bbc
lea eax, [ebp - 0x2a7c]
push eax
mov eax, dword [0x5e4654]
push eax
lea ecx, [ebp - 0x2ab0]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
xor edx, edx
call fcn.00650bbc
lea ecx, [ebp - 0x2ab0]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.005d7de0
mov dl, 1
mov eax, dword [0x5455f8]
call fcn.005625ac
mov dword [ebp - 0x58], eax
mov edx, dword [0x671910]
mov edx, dword [edx + 0x88]
lea eax, [ebp - 0x2a98]
mov ecx, 0x5e46a8
call fcn.00403568
mov edx, dword [ebp - 0x2a98]
mov eax, dword [ebp - 0x58]
call fcn.00562b88
mov eax, dword [ebp - 0x58]
call fcn.004c1a38
mov byte [ebp - 0x2a70], 2
mov dword [ebp - 0x2a6c], 0xd20
call fcn.0065179c
mov dword [ebp - 0x2a5c], eax
lea edx, [ebp - 0x2ab4]
mov eax, dword [ebp - 0x58]
call fcn.00562c64
mov edx, dword [ebp - 0x2ab4]
lea ecx, [ebp - 0x2a98]
mov eax, 0x5e46c8
call fcn.0065918c
mov edx, dword [ebp - 0x2a98]
mov eax, dword [ebp - 0x2a5c]
call fcn.00651aa8
mov eax, dword [0x6720a0]
or word [eax], 0x80
lea edx, [ebp - 0x2a70]
mov eax, dword [ebp - 8]
call fcn.005dfd74
mov eax, dword [0x6720a0]
and word [eax], 0xff7f
mov eax, dword [ebp - 0x2a5c]
call fcn.004028c0
mov eax, dword [ebp - 0x58]
call fcn.004028c0
dec dword [0x6763d0]
inc ebx
inc esi
cmp bl, 0x11
jne 0x5e188d
mov eax, dword [0x671c18]
mov edx, dword [ebp - 0x5c]
mov dword [eax], edx
call fcn.00656f18
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5e4644
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 [0x546748]
call fcn.00403f10
lea eax, [ebp - 0x24]
mov edx, 5
call fcn.00403898
ret