Function at 0x100549ff
Capabilities:
Check if file exists
Delete file
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x21
push 0
push 0
dec ecx
jne 0x1005321c
push ecx
push ebx
push esi
push edi
xor eax, eax
push ebp
push 0x10055535
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x100554e5
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
cmp dword [eax + 0x18], 0
jne 0x100533c4
call fcn.10057710
call fcn.10055ed4
call fcn.100561a4
call fcn.1004bfcc
mov eax, dword [0x1005c5a4]
mov dword [eax], 0xffffffff
xor esi, esi
mov ebx, dword [0x1005c334]
mov eax, dword [ebx]
call fcn.10004a00
push eax
call sub.kernel32.dll_lstrlenA_1
cmp eax, 7
jle 0x100533aa
lea eax, [ebp - 4]
mov edx, dword [ebx]
call fcn.100045bc
mov ax, word [ebx + 4]
mov word [ebp - 6], ax
mov eax, dword [ebp - 4]
call fcn.10004a00
mov edx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov cx, word [ebp - 6]
call fcn.1004d47c
test eax, eax
jne 0x100532e1
cmp esi, 4
jne 0x100533aa
mov eax, dword [0x1005c66c]
movzx eax, byte [eax]
imul eax, eax, 0x3e8
push eax
call sub.kernel32.dll_Sleep
jmp 0x100533aa
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 4]
xor edx, edx
call fcn.1004d2a4
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 4]
xor edx, edx
call fcn.1004d284
mov eax, dword [ebp + 8]
call fcn.10052f84
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
cmp dword [eax + 0x18], 0
je 0x100533aa
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 4]
mov edx, 0xea60
call fcn.1004d24c
lea edx, [ebp - 9]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov ecx, 3
call fcn.1004d554
cmp eax, 3
jne 0x1005335b
mov edx, dword [0x1005c680]
lea eax, [ebp - 9]
mov ecx, 3
call fcn.100122fc
test al, al
jne 0x10053374
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
cmp dword [eax + 0x18], 0
je 0x100533aa
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
call fcn.1004d518
jmp 0x100533aa
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 4]
xor edx, edx
call fcn.1004d24c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 4]
mov ecx, 0xbb8
mov edx, 0xea60
call fcn.1004d304
mov eax, dword [0x1005c5a4]
mov dword [eax], esi
call fcn.1004bfcc
jmp 0x100533b7
inc esi
add ebx, 8
cmp esi, 5
jne 0x1005327a
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x10053235
mov eax, dword [ebp + 8]
lea edx, [eax + 0x48]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov ecx, 2
call fcn.1004d594
mov edx, dword [ebp + 8]
mov dword [edx + 0x40], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x40], 0
jg 0x100533f5
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
cmp dword [eax + 0x18], 0
je 0x1005346c
mov eax, dword [ebp + 8]
movzx edx, word [eax + 0x48]
mov eax, dword [ebp + 8]
add eax, 0x44
call fcn.10004b30
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x44]
call fcn.10004a00
mov edx, eax
mov eax, dword [ebp + 8]
movzx ecx, word [eax + 0x48]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
call fcn.1004d594
mov edx, dword [ebp + 8]
mov dword [edx + 0x40], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x40], 0
jle 0x10053441
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
cmp dword [eax + 0x18], 0
jne 0x10053497
call fcn.1004bfcc
mov eax, dword [0x1005c66c]
movzx eax, byte [eax]
imul eax, eax, 0x3e8
call fcn.10003074
push eax
call sub.kernel32.dll_Sleep
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x10053235
call fcn.1004bfcc
mov eax, dword [0x1005c66c]
movzx eax, byte [eax]
imul eax, eax, 0x3e8
call fcn.10003074
push eax
call sub.kernel32.dll_Sleep
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x10053235
mov eax, dword [ebp + 8]
cmp dword [eax + 0x44], 0
jne 0x100534ad
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x10053235
xor eax, eax
push ebp
push 0x100554ce
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x44]
mov eax, dword [ebp + 8]
call fcn.10052c7c
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 0xf]
cmp eax, 0xf
ja case.0x100534d9.0
jmp dword [eax*4 + 0x100534e0]
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 0x10]
cmp eax, 0xb
ja case.0x100534d9.0
jmp dword [eax*4 + 0x10053537]
push 0
lea eax, [ebp - 0x10]
call fcn.1004cb58
mov eax, dword [ebp - 0x10]
push eax
push 0
push 0
push 0
push 1
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0
lea edx, [ebp - 0x14]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.1004cd8c
mov eax, dword [ebp - 0x14]
push eax
push 0
push 0
push 1
push 1
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x18]
mov eax, 0x10055550
call fcn.10004ae8
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x20], 0
je 0x10053613
mov eax, dword [ebp + 8]
add eax, 0x28
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
sub ecx, 2
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov edx, 2
call fcn.10004a60
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
dec ecx
mov eax, dword [ebp + 8]
add eax, 0x18
mov edx, 2
call fcn.10004aa0
jmp 0x1005361e
mov eax, dword [ebp + 8]
add eax, 0x28
call fcn.10004524
lea eax, [ebp - 0x18]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x18]
mov dl, byte [edx]
call fcn.1000470c
mov eax, dword [ebp - 0x18]
call fcn.1004b4f4
push eax
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
call fcn.10004a00
push eax
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.10004800
mov ecx, eax
dec ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov edx, 2
call fcn.10004a60
mov eax, dword [ebp - 0x1c]
call fcn.10004a00
push eax
push 0x10055554
push 0
mov eax, dword [0x1005c6bc]
mov eax, dword [eax]
call eax
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x18]
mov eax, 0x10055550
call fcn.10004ae8
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x20], 0
je 0x100536dd
mov eax, dword [ebp + 8]
add eax, 0x28
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
sub ecx, 2
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov edx, 2
call fcn.10004a60
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
dec ecx
mov eax, dword [ebp + 8]
add eax, 0x18
mov edx, 2
call fcn.10004aa0
jmp 0x100536e8
mov eax, dword [ebp + 8]
add eax, 0x28
call fcn.10004524
lea eax, [ebp - 0x20]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x18]
mov dl, byte [edx]
call fcn.1000470c
mov eax, dword [ebp - 0x20]
call fcn.1004b4f4
push eax
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.10004800
mov ecx, eax
dec ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov edx, 2
call fcn.10004a60
push dword [ebp - 0x28]
push 0x10055564
mov eax, dword [ebp + 8]
push dword [eax + 0x28]
lea eax, [ebp - 0x24]
mov edx, 3
call fcn.100048c0
mov eax, dword [ebp - 0x24]
call fcn.10004a00
push eax
mov eax, dword [0x1005c620]
mov eax, dword [eax]
call eax
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.10004800
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
push 0x10055570
lea eax, [ebp - 0x2c]
push eax
mov ecx, 0x1005557c
mov edx, 0x10055588
mov eax, 0x80000002
call fcn.100522a4
push dword [ebp - 0x2c]
push 0x100555d0
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
dec ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov edx, 1
call fcn.10004a60
push dword [ebp - 0x30]
mov eax, dword [ebp + 8]
add eax, 0x28
mov edx, 4
call fcn.100048c0
lea eax, [ebp - 0x34]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x20]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x18]
mov dl, byte [ecx + edx - 1]
call fcn.1000470c
mov eax, dword [ebp - 0x34]
call fcn.1004b4f4
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
call fcn.10004a00
push eax
mov eax, dword [0x1005c620]
mov eax, dword [eax]
call eax
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.10004a00
call fcn.10002cb8
call fcn.10002c18
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
push eax
call sub.shlwapi.dll_PathFileExistsA_1
test eax, eax
je 0x10053839
push 0
push 0
push 1
push 0xe1
push 5
push 1
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0
push 0
push 2
push 0xe1
push 5
push 1
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0
push 0x80
push 2
push 0
push 2
push 0x40000000
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.10004a00
push eax
call sub.kernel32.dll_CreateFileA
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x20], 0
je 0x100538b7
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x20]
push eax
call sub.kernel32.dll_CloseHandle
push 0
push 0
push 1
push 0xe1
push 6
push 1
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0
push 0
push 2
push 0xe1
push 6
push 1
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x18]
mov eax, 0x10055550
call fcn.10004ae8
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.10004800
mov edx, dword [ebp + 8]
mov dword [edx + 0x24], eax
mov eax, dword [ebp + 8]
add eax, 0x28
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
sub ecx, 2
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov edx, 2
call fcn.10004a60
mov eax, dword [ebp + 8]
add eax, 0x2c
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x24]
mov eax, dword [ebp + 8]
sub ecx, dword [eax + 0x20]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x20]
inc edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.10004a60
mov eax, dword [ebp + 8]
cmp byte [eax + 0x10], 7
jne 0x10053a17
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
cmp byte [eax], 0x46
jne 0x100539c2
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
call fcn.10004a00
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
call fcn.10004a00
push eax
mov eax, dword [0x1005c338]
mov eax, dword [eax]
call eax
test eax, eax
je 0x100539a2
push 0
push 0
push 1
push 0xe1
push 7
push 1
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0
push 0
push 2
push 0xe1
push 7
push 1
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x2c]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
call fcn.1004d0dc
test eax, eax
je 0x100539f7
push 0
push 0
push 3
push 0xe1
push 7
push 1
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0
push 0
push 4
push 0xe1
push 7
push 1
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
cmp byte [eax], 0x46
jne 0x10053a83
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
call fcn.10004a00
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
call fcn.10004a00
push eax
call sub.kernel32.dll_MoveFileA
test eax, eax
je 0x10053a63
push 0
push 0
push 1
push 0xe1
push 8
push 1
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0
push 0
push 2
push 0xe1
push 8
push 1
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x2c]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
call fcn.1004d0dc
test eax, eax
je 0x10053ac7
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
call fcn.1004d044
test eax, eax
je 0x10053ac7
push 0
push 0
push 3
push 0xe1
push 8
push 1
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0
push 0
push 4
push 0xe1
push 8
push 1
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.10004a00
push eax
call sub.kernel32.dll_SetFileAttributesA
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.10004a00
push eax
call sub.kernel32.dll_DeleteFileA
test eax, eax
je 0x10053b2f
push 0
push 0
push 1
push 0xe1
push 9
push 1
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0
push 0
push 2
push 0xe1
push 9
push 1
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.1004d044
test eax, eax
je 0x10053b7e
push 0
push 0
push 1
push 0xe1
push 0xa
push 1
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0
push 0
push 2
push 0xe1
push 0xa
push 1
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x18]
mov eax, 0x10055550
call fcn.10004ae8
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
mov eax, dword [ebp + 8]
add eax, 0x28
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
dec ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov edx, 1
call fcn.10004a60
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp + 8]
add eax, 0x18
mov edx, 1
call fcn.10004aa0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.10004a00
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
call fcn.10004a00
push eax
call sub.kernel32.dll_MoveFileA
test eax, eax
je 0x10053c29
push 0
push 0
push 1
push 0xe1
push 0xb
push 1
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0
push 0
push 2
push 0xe1
push 0xb
push 1
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 0x10]
cmp eax, 0xb
ja case.0x100534d9.0
jmp dword [eax*4 + 0x10053c60]
push 0
lea eax, [ebp - 0x38]
call fcn.1005124c
mov eax, dword [ebp - 0x38]
push eax
push 0
push 0
push 0
push 2
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
call fcn.10051294
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
call fcn.100512a0
jmp case.0x100534d9.0
call fcn.100512d0
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
call fcn.100512ac
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
call fcn.100512b8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
call fcn.100512c4
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
xor edx, edx
call fcn.10051308
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
or edx, 0xffffffff
call fcn.10051308
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
call fcn.10051274
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
call fcn.10051284
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.10004a00
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
push eax
call sub.user32.dll_SetWindowTextA
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x10]
sub al, 1
jb 0x10053d84
je 0x10053dab
jmp case.0x100534d9.0
push 0
lea eax, [ebp - 0x3c]
call fcn.1004d8cc
mov eax, dword [ebp - 0x3c]
push eax
push 0
push 0
push 0
push 3
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.1004db14
test al, al
je 0x10053dda
push 0
push 0
push 1
push 0xe1
push 1
push 3
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0
push 0
push 2
push 0xe1
push 1
push 3
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x10]
sub al, 1
jb 0x10053e13
je 0x10053e3a
dec al
je 0x10053f08
jmp case.0x100534d9.0
push 0
lea eax, [ebp - 0x40]
call fcn.10051404
mov eax, dword [ebp - 0x40]
push eax
push 0
push 0
push 0
push 4
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x18]
mov eax, 0x100555dc
call fcn.10004ae8
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
mov eax, dword [ebp + 8]
add eax, 0x28
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
dec ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov edx, 1
call fcn.10004a60
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp + 8]
add eax, 0x18
mov edx, 1
call fcn.10004aa0
lea eax, [ebp - 0x44]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x18]
mov dl, byte [edx + 1]
call fcn.1000470c
mov eax, dword [ebp - 0x44]
call fcn.1004b4f4
push eax
lea eax, [ebp - 0x48]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x18]
mov dl, byte [edx]
call fcn.1000470c
mov eax, dword [ebp - 0x48]
call fcn.1004b4f4
mov edx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
pop ecx
call fcn.100517b4
test eax, eax
je 0x10053ee8
push 0
push 0
push 1
push 0xe1
push 1
push 4
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0
push 0
push 2
push 0xe1
push 1
push 4
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.1004db14
test al, al
je 0x10053f37
push 0
push 0
push 1
push 0xe1
push 2
push 4
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0
push 0
push 2
push 0xe1
push 2
push 4
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 0x10]
cmp eax, 5
ja case.0x100534d9.0
jmp dword [eax*4 + 0x10053f6e]
lea eax, [ebp - 0x4c]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x18]
mov dl, byte [edx]
call fcn.1000470c
mov eax, dword [ebp - 0x4c]
call fcn.1004b4f4
call fcn.10051958
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.10004800
dec eax
je 0x10053fce
mov eax, dword [ebp + 8]
add eax, 0x18
mov ecx, 1
mov edx, 1
call fcn.10004aa0
jmp 0x10053fd9
mov eax, dword [ebp + 8]
add eax, 0x18
call fcn.10004524
push 0
lea ecx, [ebp - 0x54]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x20]
call fcn.10051988
push dword [ebp - 0x54]
push 0x100555e8
push 0x10055550
push 0x100555e8
lea ecx, [ebp - 0x58]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x20]
call fcn.10051a84
push dword [ebp - 0x58]
lea eax, [ebp - 0x50]
mov edx, 5
call fcn.100048c0
mov eax, dword [ebp - 0x50]
push eax
push 0
push 0
push 0
push 5
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
lea eax, [ebp - 0x5c]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.10004800
mov ecx, eax
dec ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov edx, 2
call fcn.10004a60
mov eax, dword [ebp - 0x5c]
push eax
lea eax, [ebp - 0x60]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x18]
mov dl, byte [edx]
call fcn.1000470c
mov eax, dword [ebp - 0x60]
call fcn.1004b4f4
call fcn.10051958
pop edx
call fcn.10052210
test eax, eax
je 0x100540af
push 0
push 0
push 1
push 0xe1
push 1
push 5
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0
push 0
push 2
push 0xe1
push 1
push 5
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
add eax, 0x28
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x18]
call fcn.10004578
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x18]
mov eax, 0x10055550
call fcn.10004ae8
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
mov eax, dword [ebp + 8]
add eax, 0x2c
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
sub ecx, 3
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov edx, 3
call fcn.10004a60
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp + 8]
add eax, 0x18
mov edx, 1
call fcn.10004aa0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x18]
mov eax, 0x10055550
call fcn.10004ae8
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
mov eax, dword [ebp + 8]
add eax, 0x30
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
dec ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov edx, 1
call fcn.10004a60
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp + 8]
add eax, 0x18
mov edx, 1
call fcn.10004aa0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
push eax
lea eax, [ebp - 0x64]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x28]
mov dl, byte [edx + 1]
call fcn.1000470c
mov eax, dword [ebp - 0x64]
call fcn.1004b4f4
push eax
lea eax, [ebp - 0x68]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x28]
mov dl, byte [edx]
call fcn.1000470c
mov eax, dword [ebp - 0x68]
call fcn.1004b4f4
call fcn.10051958
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x30]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
call fcn.10051e58
test eax, eax
je 0x100541d5
mov eax, dword [ebp + 8]
mov dword [eax + 0x34], 1
jmp 0x100541df
mov eax, dword [ebp + 8]
mov dword [eax + 0x34], 2
push 0
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
push eax
push 0xe1
push 2
push 5
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
add eax, 0x28
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x18]
call fcn.10004578
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x28]
mov eax, 0x10055550
call fcn.10004ae8
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
mov eax, dword [ebp + 8]
add eax, 0x2c
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
sub ecx, 2
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
mov edx, 2
call fcn.10004a60
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp + 8]
add eax, 0x28
mov edx, 1
call fcn.10004aa0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x28]
mov eax, 0x10055550
call fcn.10004ae8
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
mov eax, dword [ebp + 8]
add eax, 0x30
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
dec ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
mov edx, 1
call fcn.10004a60
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp + 8]
add eax, 0x28
mov edx, 1
call fcn.10004aa0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
push eax
lea eax, [ebp - 0x6c]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x18]
mov dl, byte [edx]
call fcn.1000470c
mov eax, dword [ebp - 0x6c]
call fcn.1004b4f4
call fcn.10051958
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x30]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
call fcn.1005211c
test eax, eax
je 0x100542f0
mov eax, dword [ebp + 8]
mov dword [eax + 0x34], 1
jmp 0x100542fa
mov eax, dword [ebp + 8]
mov dword [eax + 0x34], 2
push 0
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
push eax
push 0xe1
push 3
push 5
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x18]
mov eax, 0x10055550
call fcn.10004ae8
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
lea eax, [ebp - 0x70]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.10004800
mov ecx, eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x20]
inc edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.10004a60
mov eax, dword [ebp - 0x70]
push eax
lea eax, [ebp - 0x74]
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
sub ecx, 2
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov edx, 2
call fcn.10004a60
mov eax, dword [ebp - 0x74]
push eax
lea eax, [ebp - 0x78]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x18]
mov dl, byte [edx]
call fcn.1000470c
mov eax, dword [ebp - 0x78]
call fcn.1004b4f4
call fcn.10051958
pop edx
pop ecx
call fcn.10052260
test eax, eax
je 0x100543b1
mov eax, dword [ebp + 8]
mov dword [eax + 0x34], 1
jmp 0x100543bb
mov eax, dword [ebp + 8]
mov dword [eax + 0x34], 2
push 0
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
push eax
push 0xe1
push 4
push 5
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
lea eax, [ebp - 0x7c]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.10004800
mov ecx, eax
dec ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov edx, 2
call fcn.10004a60
mov eax, dword [ebp - 0x7c]
push eax
lea eax, [ebp - 0x80]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x18]
mov dl, byte [edx]
call fcn.1000470c
mov eax, dword [ebp - 0x80]
call fcn.1004b4f4
call fcn.10051958
pop edx
call fcn.10052240
test eax, eax
je 0x10054439
mov eax, dword [ebp + 8]
mov dword [eax + 0x34], 1
jmp 0x10054443
mov eax, dword [ebp + 8]
mov dword [eax + 0x34], 2
push 0
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
push eax
push 0xe1
push 5
push 5
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov edx, 0x100555f4
call fcn.1000494c
jne 0x1005448d
mov eax, dword [ebp + 8]
add eax, 0x18
mov edx, dword [0x1005c3f4]
mov edx, dword [edx]
call fcn.10004578
push 0
mov eax, dword [0x1005c4e8]
push dword [eax]
push 0x10055600
push 0x10055614
lea eax, [ebp - 0x88]
mov edx, 3
call fcn.100048c0
mov eax, dword [ebp - 0x88]
lea ecx, [ebp - 0x84]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x18]
call fcn.100523cc
mov eax, dword [ebp - 0x84]
push eax
push 0
push 0
push 0
push 6
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 0x10]
cmp eax, 0xc
ja case.0x100534d9.0
jmp dword [eax*4 + 0x100544fe]
call fcn.10057710
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x14]
mov edx, dword [0x1005c67c]
mov byte [edx], al
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.1004b4f4
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0x1c]
call fcn.10004a00
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x1c]
mov dx, word [edx + 0x20]
pop ecx
call fcn.100576e0
jmp case.0x100534d9.0
mov eax, dword [0x1005c3f0]
cmp dword [eax], 0
je case.0x100534d9.0
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x14]
mov edx, dword [0x1005c67c]
mov byte [edx], al
jmp case.0x100534d9.0
push 2
push 0xf170
push 0x112
push 0xffff
call sub.user32.dll_PostMessageA
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
add eax, 0x50
push eax
push 0
push 0
push 0x10052bf8
push 0
push 0
call sub.kernel32.dll_CreateThread_1
mov edx, dword [ebp + 8]
mov dword [edx + 0x50], eax
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
cmp dword [eax + 0x50], 0
je 0x100545f3
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x50]
push eax
call sub.kernel32.dll_TerminateThread
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax + 0x50], edx
push 0xffffffffffffffff
push 0xf170
push 0x112
push 0xffff
call sub.user32.dll_PostMessageA
jmp case.0x100534d9.0
mov eax, dword [0x1005c3f0]
cmp dword [eax], 0
je case.0x100534d9.0
mov eax, dword [0x1005c608]
mov dword [eax], 0x40cc0020
jmp case.0x100534d9.0
mov eax, dword [0x1005c3f0]
cmp dword [eax], 0
je case.0x100534d9.0
mov eax, dword [0x1005c608]
mov dword [eax], 0xcc0020
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x10]
sub al, 1
jb 0x10054663
je 0x100546b6
dec al
je 0x100547db
jmp case.0x100534d9.0
push 0
mov eax, dword [ebp + 8]
push dword [eax + 0x3c]
push 0x10055550
push 0x10055624
lea eax, [ebp - 0x90]
call fcn.10056088
push dword [ebp - 0x90]
lea eax, [ebp - 0x8c]
mov edx, 4
call fcn.100048c0
mov eax, dword [ebp - 0x8c]
push eax
push 1
push 0
push 0
push 8
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
call fcn.100561a4
mov dl, 1
mov eax, dword [0x10055f50]
call fcn.100565d0
mov edx, dword [0x1005c3ec]
mov dword [edx], eax
lea eax, [ebp - 0x94]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x18]
mov dl, byte [edx]
call fcn.1000470c
mov eax, dword [ebp - 0x94]
call fcn.1004b4f4
mov edx, dword [0x1005c3ec]
mov edx, dword [edx]
mov byte [edx + 0xc0], al
lea eax, [ebp - 0x98]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x18]
mov dl, byte [edx + 1]
call fcn.1000470c
mov eax, dword [ebp - 0x98]
call fcn.1004b4f4
mov edx, dword [0x1005c3ec]
mov edx, dword [edx]
mov byte [edx + 0xc1], al
lea eax, [ebp - 0x9c]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x18]
mov dl, byte [edx + 2]
call fcn.1000470c
mov eax, dword [ebp - 0x9c]
call fcn.1004b4f4
mov edx, dword [0x1005c3ec]
mov edx, dword [edx]
mov byte [edx + 0xc2], al
mov eax, dword [ebp + 8]
add eax, 0x18
mov ecx, 3
mov edx, 1
call fcn.10004aa0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.1004b4f4
mov edx, dword [0x1005c3ec]
mov edx, dword [edx]
mov dword [edx + 0xc4], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov cx, word [eax + 0x20]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov edx, dword [eax + 0x1c]
mov eax, dword [0x1005c3ec]
mov eax, dword [eax]
call fcn.100569b0
test eax, eax
jne case.0x100534d9.0
call fcn.100561a4
push 0
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
push eax
push 0xf4
push 1
push 8
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
call fcn.100561a4
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x10]
sub al, 1
jb 0x100547fa
je 0x10054963
jmp case.0x100534d9.0
mov eax, dword [0x1005c658]
cmp dword [eax], 0
je 0x10054809
call fcn.10055ed4
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov ax, word [eax + 0x20]
push eax
push 0x55
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax + 0x1c]
mov dl, 1
mov eax, dword [0x10055790]
call fcn.10055800
mov edx, dword [0x1005c658]
mov dword [edx], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
mov edx, dword [0x1005c658]
mov edx, dword [edx]
mov dword [edx + 0x2048], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x18]
mov eax, 0x10055550
call fcn.10004ae8
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
lea eax, [ebp - 0xa0]
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
dec ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov edx, 1
call fcn.10004a60
mov eax, dword [ebp - 0xa0]
call fcn.1004b590
mov ecx, dword [0x1005c658]
mov ecx, dword [ecx]
mov dword [ecx + 0x2040], eax
mov dword [ecx + 0x2044], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp + 8]
add eax, 0x18
mov edx, 1
call fcn.10004aa0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x18]
mov eax, 0x10055550
call fcn.10004ae8
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
lea eax, [ebp - 0xa4]
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
dec ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov edx, 1
call fcn.10004a60
mov eax, dword [ebp - 0xa4]
call fcn.1004b4f4
mov edx, dword [0x1005c658]
mov edx, dword [edx]
mov word [edx + 0x2050], ax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp + 8]
add eax, 0x18
mov edx, 1
call fcn.10004aa0
mov eax, dword [0x1005c658]
mov eax, dword [eax]
add eax, 0x204c
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x18]
call fcn.10004578
mov eax, dword [0x1005c658]
mov eax, dword [eax]
add eax, 0x2058
push eax
push 0
mov eax, dword [0x1005c658]
mov eax, dword [eax]
push eax
push 0x10055868
push 0
push 0
call sub.kernel32.dll_CreateThread_1
mov edx, dword [0x1005c658]
mov edx, dword [edx]
mov dword [edx + 0x2058], eax
jmp case.0x100534d9.0
mov eax, dword [0x1005c658]
cmp dword [eax], 0
je 0x10054972
call fcn.10055ed4
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov ax, word [eax + 0x20]
push eax
push 0x44
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax + 0x1c]
mov dl, 1
mov eax, dword [0x10055790]
call fcn.10055800
mov edx, dword [0x1005c658]
mov dword [edx], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
mov edx, dword [0x1005c658]
mov edx, dword [edx]
mov dword [edx + 0x2048], eax
mov eax, dword [0x1005c658]
mov eax, dword [eax]
add eax, 0x204c
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x18]
call fcn.10004578
mov eax, dword [0x1005c658]
mov eax, dword [eax]
add eax, 0x2058
push eax
push 0
mov eax, dword [0x1005c658]
mov eax, dword [eax]
push eax
push 0x10055868
push 0
push 0
call sub.kernel32.dll_CreateThread_1
mov edx, dword [0x1005c658]
mov edx, dword [edx]
mov dword [edx + 0x2058], eax
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x10]
sub al, 3
je 0x10054a16
dec al
je 0x10054b25
jmp case.0x100534d9.0
call fcn.1004f7c0
test al, al
je 0x10054af3
mov eax, dword [0x1005c68c]
push eax
call sub.kernel32.dll_EnterCriticalSection_1
xor eax, eax
push ebp
push 0x10054aec
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
mov eax, dword [0x1005c408]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_GetFileSize
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x20], 2
jbe 0x10054ac8
mov eax, dword [ebp + 8]
sub dword [eax + 0x20], 2
push 0
push 0
push 2
mov eax, dword [0x1005c408]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_SetFilePointer
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x20]
shr edx, 1
mov eax, dword [ebp + 8]
add eax, 0x38
call fcn.10005030
push 0
mov eax, dword [ebp + 8]
add eax, 0x20
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x20]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x38]
call fcn.10004d54
push eax
mov eax, dword [0x1005c408]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_ReadFile
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x38]
call fcn.10004d54
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x20]
call fcn.10012410
jmp 0x10054ad3
mov eax, dword [ebp + 8]
add eax, 0x28
call fcn.10004524
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x10054b03
mov eax, dword [0x1005c68c]
push eax
call sub.kernel32.dll_LeaveCriticalSection_1
ret
mov eax, dword [ebp + 8]
add eax, 0x28
mov edx, 0x10055630
call fcn.10004578
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x38]
push eax
push 0
push 0
push 0
push 3
push 0xa
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
call fcn.1004f7c0
test al, al
je case.0x100534d9.0
call fcn.1004f8c8
lea eax, [ebp - 0xa8]
call fcn.1004f724
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp + 8]
add eax, 0x28
call fcn.10004578
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
call fcn.10004a00
push eax
call sub.kernel32.dll_DeleteFileA
test eax, eax
jne 0x10054b7d
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
call fcn.10004a00
push eax
call sub.shlwapi.dll_PathFileExistsA
test eax, eax
jne 0x10054b92
mov eax, dword [0x1005c604]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp + 8]
mov dword [eax + 0x20], 1
jmp 0x10054b9a
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax + 0x20], edx
mov eax, dword [ebp + 8]
cmp dword [eax + 0x20], 1
jne 0x10054bbd
push 0
push 0
push 0
push 1
push 4
push 0xa
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp 0x10054bd5
push 0
push 0
push 0
push 0
push 4
push 0xa
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
call fcn.1004f7cc
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x10]
sub al, 1
jb 0x10054bf4
je 0x10054d34
jmp case.0x100534d9.0
push 0
lea eax, [ebp - 0xb0]
call fcn.1004e5b8
push dword [ebp - 0xb0]
push 0x100555e8
lea eax, [ebp - 0xb4]
call fcn.1004e5e8
push dword [ebp - 0xb4]
push 0x100555e8
lea eax, [ebp - 0xb8]
call fcn.1004e4b4
push dword [ebp - 0xb8]
push 0x100555e8
push 0
call sub.user32.dll_GetSystemMetrics
cdq
push edx
push eax
lea edx, [ebp - 0xbc]
xor eax, eax
call fcn.1004b514
push dword [ebp - 0xbc]
push 0x10055644
push 1
call sub.user32.dll_GetSystemMetrics
cdq
push edx
push eax
lea edx, [ebp - 0xc0]
xor eax, eax
call fcn.1004b514
push dword [ebp - 0xc0]
push 0x100555e8
mov eax, dword [0x1005c578]
push dword [eax]
push 0x100555e8
lea eax, [ebp - 0xc4]
push eax
mov edx, dword [0x1005c33c]
mov edx, dword [edx]
mov eax, dword [0x1005c564]
mov eax, dword [eax]
mov ecx, 0x10055650
call fcn.100522a4
push dword [ebp - 0xc4]
push 0x100555e8
lea eax, [ebp - 0xc8]
push eax
mov edx, dword [0x1005c33c]
mov edx, dword [edx]
mov eax, dword [0x1005c564]
mov eax, dword [eax]
mov ecx, 0x10055660
call fcn.100522a4
push dword [ebp - 0xc8]
push 0x100555e8
lea eax, [ebp - 0xcc]
push eax
mov edx, dword [0x1005c33c]
mov edx, dword [edx]
mov eax, dword [0x1005c564]
mov eax, dword [eax]
mov ecx, 0x10055674
call fcn.100522a4
push dword [ebp - 0xcc]
lea eax, [ebp - 0xac]
mov edx, 0x11
call fcn.100048c0
mov eax, dword [ebp - 0xac]
push eax
push 0
push 0
push 0
push 0xb
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0
lea ecx, [ebp - 0xd4]
mov eax, dword [0x1005c494]
mov dl, 1
call fcn.10012128
push dword [ebp - 0xd4]
push 0x100555e8
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
push dword [eax + 0x1c]
push 0x100555e8
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
movzx eax, word [eax + 0x20]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0xd8]
xor eax, eax
call fcn.1004b514
push dword [ebp - 0xd8]
push 0x100555e8
mov eax, dword [0x1005c66c]
movzx eax, byte [eax]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0xdc]
xor eax, eax
call fcn.1004b514
push dword [ebp - 0xdc]
push 0x100555e8
mov eax, dword [0x1005c5f4]
push dword [eax]
push 0x100555e8
mov eax, dword [0x1005c500]
push dword [eax]
lea eax, [ebp - 0xd0]
mov edx, 0xb
call fcn.100048c0
mov eax, dword [ebp - 0xd0]
push eax
push 0
push 0
push 1
push 0xb
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 0x10]
cmp eax, 0xd
ja case.0x100534d9.0
jmp dword [eax*4 + 0x10054e05]
push 0
lea eax, [ebp - 0xe0]
call 0x1004e488
mov eax, dword [ebp - 0xe0]
push eax
push 0
push 0
push 0
push 0xc
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
or eax, 0xffffffff
call fcn.1004e634
jmp case.0x100534d9.0
xor eax, eax
call fcn.1004e634
jmp case.0x100534d9.0
push 1
call sub.user32.DLL_BlockInput
jmp case.0x100534d9.0
push 0
call sub.user32.DLL_BlockInput
jmp case.0x100534d9.0
push 0xffffffffffffffff
call sub.user32.dll_SwapMouseButton
jmp case.0x100534d9.0
push 0
call sub.user32.dll_SwapMouseButton
jmp case.0x100534d9.0
push 0
push 0
push 0x10055680
call sub.user32.dll_FindWindowA
push eax
call sub.user32.dll_ShowWindow
jmp case.0x100534d9.0
push 5
push 0
push 0x10055680
call sub.user32.dll_FindWindowA
push eax
call sub.user32.dll_ShowWindow
jmp case.0x100534d9.0
push 0
call fcn.1004e67c
push eax
call sub.user32.dll_ShowWindow
jmp case.0x100534d9.0
push 5
call fcn.1004e67c
push eax
call sub.user32.dll_ShowWindow
jmp case.0x100534d9.0
push 0
push 0
push 0x10055688
push 0
call fcn.1004e67c
push eax
call sub.user32.dll_FindWindowExA
push eax
call sub.user32.dll_EnableWindow
jmp case.0x100534d9.0
push 0xffffffffffffffff
push 0
push 0x10055688
push 0
call fcn.1004e67c
push eax
call sub.user32.dll_FindWindowExA
push eax
call sub.user32.dll_EnableWindow
jmp case.0x100534d9.0
lea edx, [ebp - 0xe4]
mov eax, dword [ebp + 8]
add eax, 0x18
call fcn.1004c8f8
mov eax, dword [ebp - 0xe4]
push eax
push 0
push 0
push 0
push 0xd
push 0xc
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 0x10]
cmp eax, 0xb
ja case.0x100534d9.0
jmp dword [eax*4 + 0x10054f95]
mov eax, dword [ebp + 8]
add eax, 0x18
call 0x1004ee60
jmp case.0x100534d9.0
push 1
lea eax, [ebp - 0xec]
push eax
mov eax, dword [0x1005c4e8]
mov eax, dword [eax]
mov ecx, 3
mov edx, 1
call fcn.10004a60
push dword [ebp - 0xec]
push 0x10055698
push 0x10055564
mov eax, dword [ebp + 8]
push dword [eax + 0x18]
lea eax, [ebp - 0xe8]
mov edx, 4
call fcn.100048c0
mov eax, dword [ebp - 0xe8]
call fcn.10004a00
push eax
mov eax, dword [0x1005c620]
mov eax, dword [eax]
call eax
jmp case.0x100534d9.0
push 0
lea eax, [ebp - 0xf4]
push eax
mov eax, dword [0x1005c4e8]
mov eax, dword [eax]
mov ecx, 3
mov edx, 1
call fcn.10004a60
push dword [ebp - 0xf4]
push 0x10055698
push 0x10055564
mov eax, dword [ebp + 8]
push dword [eax + 0x18]
lea eax, [ebp - 0xf0]
mov edx, 4
call fcn.100048c0
mov eax, dword [ebp - 0xf0]
call fcn.10004a00
push eax
mov eax, dword [0x1005c620]
mov eax, dword [eax]
call eax
jmp case.0x100534d9.0
push 0x100556d0
push 4
mov ecx, 0x100556dc
mov edx, 0x100556f8
mov eax, 0x80000002
call fcn.10051e58
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x14]
call fcn.1004f0d8
jmp case.0x100534d9.0
push 0
call sub.kernel32.dll_ExitProcess_1
call fcn.100528f0
mov eax, dword [0x1005c5e8]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_CloseHandle
mov eax, dword [0x1005c5e8]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_ReleaseMutex
push 1
push 0
push 0
mov eax, dword [0x1005c5f4]
mov eax, dword [eax]
call fcn.10004a00
push eax
push 0x10055554
push 0
mov eax, dword [0x1005c6bc]
mov eax, dword [eax]
call eax
push 0
call sub.kernel32.dll_ExitProcess_1
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x18]
mov eax, 0x10055550
call fcn.10004ae8
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
mov eax, dword [ebp + 8]
add eax, 0x28
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
dec ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov edx, 1
call fcn.10004a60
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp + 8]
add eax, 0x18
mov edx, 1
call fcn.10004aa0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
call fcn.1004f118
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x18]
mov eax, 0x10055550
call fcn.10004ae8
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
mov eax, dword [ebp + 8]
add eax, 0x28
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
dec ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov edx, 1
call fcn.10004a60
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp + 8]
add eax, 0x18
mov edx, 1
call fcn.10004aa0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x18]
mov eax, 0x10055550
call fcn.10004ae8
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
lea eax, [ebp - 0xf8]
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
dec ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov edx, 1
call fcn.10004a60
mov eax, dword [ebp - 0xf8]
call fcn.1004b4f4
mov edx, dword [ebp + 8]
mov dword [edx + 0x24], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp + 8]
add eax, 0x18
mov edx, 1
call fcn.10004aa0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x18]
mov eax, 0x10055550
call fcn.10004ae8
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
lea eax, [ebp - 0xfc]
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
dec ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov edx, 1
call fcn.10004a60
mov eax, dword [ebp - 0xfc]
call fcn.1004b4f4
mov edx, dword [ebp + 8]
mov dword [edx + 0x34], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp + 8]
add eax, 0x18
mov edx, 1
call fcn.10004aa0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.1004b4f4
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
push eax
push 0x17c
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x24]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x14]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
call fcn.1004e3e8
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
add eax, 0x54
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x18]
call fcn.10004578
mov eax, dword [ebp + 8]
add eax, 0x20
push eax
push 0
mov eax, dword [ebp + 8]
push eax
push 0x10052a64
push 0
push 0
call sub.kernel32.dll_CreateThread_1
jmp case.0x100534d9.0
call fcn.1004ec2c
jmp case.0x100534d9.0
mov edx, dword [0x1005c5dc]
mov edx, dword [edx]
mov eax, dword [0x1005c6c4]
mov eax, dword [eax]
call fcn.10052210
lea edx, [ebp - 0x100]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.1004b67c
mov edx, dword [ebp - 0x100]
mov eax, dword [ebp + 8]
add eax, 0x18
call fcn.10004578
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x10]
sub al, 3
jne case.0x100534d9.0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
push eax
push 1
mov ecx, dword [0x1005c468]
mov ecx, dword [ecx]
mov edx, dword [0x1005c5dc]
mov edx, dword [edx]
mov eax, dword [0x1005c6c4]
mov eax, dword [eax]
call fcn.10051e58
jmp case.0x100534d9.0
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x10]
dec al
je 0x10055385
dec al
je 0x100553b2
dec al
je 0x1005543f
jmp case.0x100534d9.0
push 0
lea eax, [ebp - 0x104]
call fcn.1004f458
mov eax, dword [ebp - 0x104]
push eax
push 0
push 0
push 1
push 0xf
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0x1005572c
mov eax, dword [0x1005c578]
push dword [eax]
push 0x10055740
mov eax, dword [ebp + 8]
push dword [eax + 0x18]
lea eax, [ebp - 0x108]
mov edx, 3
call fcn.100048c0
mov eax, dword [ebp - 0x108]
call fcn.10004a00
push eax
call sub.kernel32.dll_GetModuleHandleA_2
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [0x1005c6c0]
mov dword [edx], eax
mov eax, dword [0x1005c6c0]
mov eax, dword [eax]
call eax
test eax, eax
je 0x10055422
push 0
push 0
push 1
push 0x7f
push 2
push 0xf
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0
push 0
push 0
push 0x7f
push 2
push 0xf
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0x1005574c
mov eax, dword [0x1005c578]
push dword [eax]
push 0x10055740
mov eax, dword [ebp + 8]
push dword [eax + 0x18]
lea eax, [ebp - 0x10c]
mov edx, 3
call fcn.100048c0
mov eax, dword [ebp - 0x10c]
call fcn.10004a00
push eax
call sub.kernel32.dll_GetModuleHandleA_2
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [0x1005c6c0]
mov dword [edx], eax
mov eax, dword [0x1005c6c0]
mov eax, dword [eax]
call eax
test eax, eax
je 0x100554ac
push 0
push 0
push 1
push 0x7f
push 3
push 0xf
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
jmp case.0x100534d9.0
push 0
push 0
push 0
push 0x7f
push 3
push 0xf
mov eax, dword [ebp + 8]
add eax, 0x1c
push eax
call fcn.10052db8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x100554d8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x10053235