Function at 0x100505a0
Capabilities:
Accept command line arguments
Delete registry key
Get geographical location
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10074577
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x348
push ebx
push esi
push edi
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0x1e0]
push 3
mov dword [esp + 0x3c], edx
call fcn.1002d70f
xor esi, esi
lea ecx, [esp + 0x1ec]
inc esi
xor ebx, ebx
push esi
mov dword [esp + 0x360], ebx
call fcn.1002d70f
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], 0x29a275ff
mov dword [esp + 0xc], ebx
jmp 0x10050617
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x1e0]
mov dword [eax + ecx*4], esi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x10050605
mov dword [esp + 0xc], ebx
jmp 0x1005063a
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x1ec]
mov dword [eax + ecx*4], 0xd7d393e7
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x10050624
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], bl
je 0x10050652
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, dword [esp + 0x1e0]
mov edi, dword [esp + 0x1ec]
cmp dword [esi + 8], 0x7b5b
jle 0x10050682
xor ecx, ecx
cmp dword [esi + 8], ecx
setne cl
xor eax, eax
cmp ecx, dword [edi]
setg al
imul eax, dword [edi]
test eax, eax
jne 0x10050682
inc eax
jmp 0x10050684
mov eax, ebx
xor edx, edx
cmp eax, dword [edi]
mov eax, dword [esp + 0x28]
setl dl
xor ecx, ecx
add edx, dword [edi]
cmp edx, eax
mov eax, dword [esp + 0x28]
setne cl
xor edx, edx
cmp ecx, dword [esi + 8]
setne dl
xor ecx, ecx
cmp edx, eax
setle cl
xor eax, eax
sub ecx, 0x2f7c
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1ec]
mov edx, dword [esp + 0x20]
push ecx
cmp edx, dword [ecx]
setl al
imul eax, dword [esi + 8]
mov dword [esp + 0x24], eax
call fcn.1005b5f7
or dword [esp + 0x360], 0xffffffff
pop ecx
push dword [esp + 0x1e0]
mov dword [esp + 0x1f0], ebx
mov dword [esp + 0x1f4], ebx
mov dword [esp + 0x1f8], ebx
call fcn.1005b5f7
movdqa xmm0, xmmword [0x10008850]
lea eax, [esp + 0x30c]
pop ecx
push dword [esp + 0x164]
lea ecx, [esp + 0x120]
mov dword [esp + 0x1e4], ebx
push eax
lea eax, [esp + 0x300]
mov dword [esp + 0x1ec], ebx
push eax
push ebx
mov dword [esp + 0x1f8], ebx
movdqu xmmword [esp + 0x308], xmm0
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x130], ebx
mov dword [esp + 0x134], ebx
call fcn.100330fa
mov esi, dword [esp + 0x11c]
xor ecx, ecx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x18], 0xbd3e018e
mov dword [esp + 0x28], 0xa9a16d6a
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
mov edx, dword [esi + 8]
setge cl
mov dword [esp + 0xc], ecx
xor ecx, ecx
mov eax, dword [esp + 0xc]
cmp eax, edx
setle cl
sub ecx, edx
cmp ecx, edx
je 0x100507a5
cmp dword [esp + 0xc], ebx
mov edi, dword [esp + 0x11c]
xor eax, eax
cmp dword [edi + 4], ebx
setne al
xor edx, edx
cmp eax, dword [esi + 8]
mov eax, dword [edi]
setle dl
xor ecx, ecx
imul edx, dword [esi + 8]
neg eax
cmp eax, edx
setle cl
mov dword [esp + 0x18], ecx
cmp dword [esi + 8], ebx
jne 0x1005088d
xor edi, edi
mov dword [esp + 0x24], 0xffffffff
inc edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], 0xbe495ee3
mov dword [esp + 0x18], ebx
jmp 0x1005087d
mov dword [esp + 0x10], 0xfffffffb
mov dword [esp + 0x20], 0xf90b8a4
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], bl
je 0x10050829
push 0xfcd
push 0x22ee
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_EnableScrollBar]
mov eax, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
setge dl
sub edx, dword [esp + 0x10]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
imul edx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
cmp eax, edx
setle cl
xor edx, edx
sub ecx, dword [esp + 0x10]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
cmp eax, ecx
setge dl
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x20], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x2d
je 0x100507f8
jmp 0x10050912
mov dword [esp + 0x2c], 0xfffffffa
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], ebx
jmp 0x100508b2
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x318], 8
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x1005089f
mov eax, dword [esp + 0x2c]
xor ecx, ecx
inc ecx
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x24]
sub ecx, eax
add ecx, dword [esp + 0x28]
jne 0x100508d6
cmp dword [esp + 0x2c], ebx
je 0x100508e2
cmp dword [edi + 4], ebx
je 0x100508e2
xor edi, edi
inc edi
mov eax, edi
jmp 0x100508e5
xor edi, edi
inc edi
imul ecx, eax, 5
xor edx, edx
mov dword [esp + 0x324], eax
mov eax, dword [esp + 0xc]
cmp eax, ecx
mov eax, dword [esp + 0x24]
setg dl
xor ecx, ecx
cmp edx, eax
setg cl
sub ecx, dword [esp + 0x2c]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0xc], ecx
push dword [esp + 0x11c]
call fcn.1005b5f7
mov eax, dword [0x119045c0]
mov dword [esp + 0x120], ebx
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], ebx
pop ecx
push 7
pop esi
test al, 1
jne 0x100509d5
or eax, edi
mov dword [0x119045c0], eax
push ebx
mov dword [esp + 0x360], edi
push ebx
mov dword [0x119045a0], ebx
mov dword [0x119045a4], ebx
call fcn.1003a999
mov dword [0x119045a0], eax
mov dword [0x119045a8], ebx
mov dword [0x119045b0], ebx
mov byte [esp + 0x35c], 3
mov ecx, 0x119045a8
mov dword [esp + 0x234], eax
lea eax, [esp + 0x234]
push eax
push 0x10
push ebx
lea eax, [esp + 0x264]
mov dword [0x119045bc], 0x3f800000
push eax
mov dword [0x119045ac], ebx
call fcn.1003a771
push 0x100747de
mov dword [0x119045b4], esi
mov dword [0x119045b8], 8
call fcn.1005b45e
or dword [esp + 0x360], 0xffffffff
pop ecx
imul eax, dword [esp + 0x6c], 0x2710
add eax, dword [esp + 0x38]
mov dword [esp + 0x148], eax
mov dword [esp + 0xc], 0xd4e06482
mov dword [esp + 0xc], 0xffffffef
jmp 0x10050b35
mov dword [esp + 0x1c], 0xd45db34e
mov dword [esp + 0x1c], ebx
jmp 0x10050a1b
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x3c], 8
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jl 0x10050a0b
mov dword [esp + 0x1c], ebx
jmp 0x10050a36
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x25c], ebx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jl 0x10050a27
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], ebx
jl 0x10050b31
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x3c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + eax*4 + 0x3c]
cmp eax, 0xfb5d
mov eax, dword [esp + 0x3c]
setl cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x1c]
setle dl
cmp edx, dword [esp + eax*4 + 0x3c]
jne 0x10050b10
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x18], ebx
jmp 0x10050aa2
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10050a9e
push ebx
push ebx
call dword [sym.imp.GDI32.dll_GetNearestPaletteIndex]
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xfffffff3
jge 0x10050a8b
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], ebx
jl 0x10050b27
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x1c]
cmp dword [esp + eax*4 + 0x3c], ebx
jne 0x10050b27
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], ebx
jl 0x10050b08
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + eax*4 + 0x3c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + eax*4 + 0x3c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + eax*4 + 0x3c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + eax*4 + 0x3c]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x25c], ecx
dec dword [esp + 0x10]
jns 0x10050acb
dec dword [esp + 0x18]
jns 0x10050ab3
jmp 0x10050b27
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10050b21
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
cmp dword [esp + 0xc], ebx
jne 0x10050b31
dec dword [esp + 0x1c]
jns 0x10050a4a
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0x1d
jle 0x100509fd
mov dword [esp + 0xc], ebx
jmp 0x10050b6f
mov dword [esp + 0x28], 0xa4ef21dd
dec dword [esp + 0x28]
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10050b6b
push 0xb67
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jge 0x10050b46
lea eax, [esp + 0x148]
push eax
call fcn.100531ba
push 4
lea ecx, [esp + 0x90]
mov esi, dword [eax]
mov dword [esp + 0x50], esi
call fcn.1002d70f
mov eax, 0xee76f502
mov dword [esp + 0x35c], 4
mov dword [esp + 0x170], eax
lea ecx, [esp + 0x1b0]
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x17c], eax
push edi
call fcn.1002d70f
mov dword [esp + 0xc], ebx
jmp 0x10050be9
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x8c]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x10050bd6
mov dword [esp + 0xc], ebx
jmp 0x10050c09
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x1b0]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x10050bf6
mov dword [esp + 0x178], 3
cmp dword [esp + 0x178], ebx
jl 0x10050f40
mov dword [esp + 0xc], 0xfb770a77
mov dword [esp + 0x20], 0x1ebf
cmp dword [esp + 0x20], 0x1145
jge 0x10050de3
mov dword [esp + 0xf4], 0xf
mov dword [esp + 0xf0], ebx
mov byte [esp + 0xe0], bl
lea eax, [esp + 0x254]
mov byte [esp + 0x35c], 6
push eax
mov ecx, 0x10663c90
call fcn.1002d0b9
lea edx, [esp + 0xe0]
mov ecx, eax
call fcn.10032f78
mov edi, dword [esp + 0x254]
mov eax, edi
and eax, 0x80000001
jns 0x10050c9b
dec eax
or eax, 0xfffffffe
inc eax
mov esi, ebx
jne 0x10050cf5
test edi, edi
jle 0x10050dc7
test esi, esi
je 0x10050cc7
mov eax, esi
and eax, 0x80000001
jns 0x10050cb9
dec eax
or eax, 0xfffffffe
inc eax
jne 0x10050cc7
mov dl, 0x2d
mov ecx, 0x10663bd8
call fcn.1003240d
cmp dword [esp + 0xf4], 0x10
lea eax, [esp + 0xe0]
mov ecx, 0x10663bd8
cmovae eax, dword [esp + 0xe0]
mov dl, byte [eax + esi]
call fcn.1003240d
inc esi
cmp esi, edi
jl 0x10050ca7
jmp 0x10050dc7
lea eax, [edi - 3]
test eax, eax
jle 0x10050d5c
test esi, esi
je 0x10050d1c
mov eax, esi
and eax, 0x80000001
jns 0x10050d0e
dec eax
or eax, 0xfffffffe
inc eax
jne 0x10050d1c
mov dl, 0x2d
mov ecx, 0x10663bd8
call fcn.1003240d
cmp dword [esp + 0xf4], 0x10
lea eax, [esp + 0xe0]
mov ecx, 0x10663bd8
cmovae eax, dword [esp + 0xe0]
mov dl, byte [eax + esi]
call fcn.1003240d
inc esi
lea eax, [edi - 3]
cmp esi, eax
jl 0x10050cfc
test esi, esi
mov esi, 0x10663bd8
je 0x10050d61
mov dl, 0x2d
mov ecx, esi
call fcn.1003240d
jmp 0x10050d61
mov esi, 0x10663bd8
cmp dword [esp + 0xf4], 0x10
lea eax, [esp + 0xe0]
mov ecx, esi
cmovae eax, dword [esp + 0xe0]
mov dl, byte [eax + edi - 3]
call fcn.1003240d
cmp dword [esp + 0xf4], 0x10
lea eax, [esp + 0xe0]
mov ecx, esi
cmovae eax, dword [esp + 0xe0]
mov dl, byte [eax + edi - 2]
call fcn.1003240d
cmp dword [esp + 0xf4], 0x10
lea eax, [esp + 0xe0]
mov ecx, esi
cmovae eax, dword [esp + 0xe0]
mov dl, byte [eax + edi - 1]
call fcn.1003240d
push 0x10663bd8
call fcn.10031f18
pop ecx
xor edi, edi
lea ecx, [esp + 0xe0]
push ebx
inc edi
push edi
call fcn.1002e289
mov dword [esp + 0x28], 4
mov dword [esp + 0xc], 3
cmp dword [esp + 0xc], ebx
jl 0x10050ef8
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], 0xffff
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x178]
sub eax, 2
neg ecx
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, 0xab9c279a
je 0x10050e43
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x178]
xor edx, edx
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + ecx*4]
neg eax
test eax, eax
mov eax, dword [esp + 0xc]
setg dl
xor ecx, ecx
cmp edx, eax
setg cl
cmp ecx, dword [esi + 8]
mov byte [esp + 0x17], bl
jl 0x10050e8d
cmp byte [esp + 0x17], 0
je 0x10050e9b
push ebx
push 0x132f
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
jmp 0x10050e9b
cmp byte [esp + 0x17], 0
je 0x10050e9b
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax]
mov dword [eax + edx*4], ecx
test ecx, ecx
je 0x10050ebb
mov eax, edi
cmp dword [esp + 0xc], ebx
jne 0x10050ebd
mov eax, ebx
xor edx, edx
cmp eax, 0x3ccc
setge dl
xor ecx, ecx
imul edx, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, edx
mov eax, dword [esp + 0x10]
setg cl
xor edx, edx
cmp ecx, 0xfffffff6
setl dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x28], ecx
dec dword [esp + 0xc]
jns 0x10050e04
mov esi, dword [esp + 0x178]
mov ecx, dword [esp + 0x178]
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [edx + esi*4], eax
mov eax, dword [esp + 0x28]
cmp dword [edx + esi*4], eax
mov eax, dword [esp + 0x1b0]
setle cl
mov dword [eax], ecx
dec dword [esp + 0x178]
jns 0x10050c27
mov esi, dword [esp + 0x4c]
cmp dword [esp + 0x1b0], 0
je 0x10050f6c
push dword [esp + 0x1b0]
call fcn.1005b5f7
pop ecx
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x1b8], ebx
or dword [esp + 0x35c], 0xffffffff
cmp dword [esp + 0x8c], 0
je 0x10050fa0
push dword [esp + 0x8c]
call fcn.1005b5f7
pop ecx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
test esi, esi
je 0x1005141f
mov dword [esp + 0x38], 0x1d79
cmp dword [esp + 0x38], 0xf3c
jge 0x10051045
lea eax, [esp + 0x64]
mov dword [esp + 0x48], ebx
push eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x68], ebx
push eax
push 0x100080f8
call fcn.1005b040
mov eax, dword [esp + 0x54]
add esp, 0xc
cmp dword [esp + 0x64], eax
jl 0x10050fee
push 0x10008150
jmp 0x1005103f
sub eax, dword [esp + 0x64]
mov esi, edi
dec eax
mov edi, 0x1000818c
cmp eax, 1
jl 0x10051016
inc esi
push esi
push edi
call fcn.1005b488
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x6c]
dec eax
pop ecx
pop ecx
cmp esi, eax
jle 0x10050fff
push 0x1000878c
call fcn.1005b488
mov esi, dword [esp + 0x4c]
sub esi, dword [esp + 0x68]
jmp 0x10051032
push esi
push edi
call fcn.1005b488
pop ecx
inc esi
pop ecx
cmp esi, dword [esp + 0x48]
jle 0x1005102a
push 0x1000805a
call fcn.1005b826
pop ecx
push dword [esp + 0x258]
movdqa xmm0, xmmword [0x10008810]
lea eax, [esp + 0x31c]
push eax
lea eax, [esp + 0x310]
mov dword [esp + 0x38], ebx
push eax
mov dword [esp + 0x34], 0xffffffff
lea ecx, [esp + 0xc0]
mov dword [esp + 0x34], 6
push ebx
movdqu xmmword [esp + 0x318], xmm0
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], ebx
call fcn.100330fa
xor esi, esi
mov dword [esp + 0x35c], 7
inc esi
mov dword [esp + 0x2c], 0xffffffff
push esi
lea ecx, [esp + 0x108]
call fcn.1002d70f
push 4
pop edi
push edi
lea ecx, [esp + 0x1cc]
mov byte [esp + 0x360], 8
call fcn.1002d70f
mov dword [esp + 0x24], 6
mov dword [esp + 0x28], 0xc0d357e
mov dword [esp + 0x38], edi
mov dword [esp + 0xc], ebx
jmp 0x1005110e
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x104]
mov dword [eax + ecx*4], 7
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x100510f8
mov dword [esp + 0xc], ebx
jmp 0x10051130
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c8]
mov dword [eax + ecx*4], 2
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x1005111a
mov edx, dword [esp + 0x1c8]
mov edi, esi
mov ecx, dword [edx + 0xc]
cmp ecx, 0xf82d
cmovg edi, ebx
lea eax, [ecx - 1]
mov dword [edx + 0xc], eax
mov eax, dword [esp + 0x104]
mov edx, dword [eax]
cmp edx, 9
jbe 0x1005116d
mov eax, dword [esp + 0xb4]
mov ecx, ebx
cmp dword [eax + 8], ebx
je 0x1005116f
mov ecx, esi
xor eax, eax
cmp ecx, 0x8ffd
setg al
imul eax, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xb4]
xor eax, eax
cmp dword [ecx + 4], esi
setl al
add eax, 4
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x104]
mov edx, dword [eax]
sub edx, dword [ecx]
sub edx, dword [ecx + 4]
xor ecx, ecx
mov eax, dword [esp + 0x2c]
sub edx, eax
mov eax, dword [esp + 0x104]
cmp edx, dword [eax]
mov eax, dword [esp + 0x24]
setle cl
xor edx, edx
test ecx, ecx
setg dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x104]
neg eax
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, dword [esi]
mov eax, dword [esp + 0xb4]
setge cl
sub ecx, 2
neg ecx
sbb ecx, ecx
inc ecx
imul ecx, edi
neg ecx
sbb ecx, ecx
inc ecx
imul ecx, dword [esi]
mov dword [eax + 8], ecx
mov esi, dword [esi]
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
imul eax, esi
imul ecx, eax, 0xffff
neg ecx
sbb ecx, ecx
xor eax, eax
neg ecx
or edi, 0xffffffff
cmp ecx, edi
sete al
xor edx, edx
cmp eax, esi
mov eax, dword [esp + 0x24]
push dword [esp + 0x1c8]
setl dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x3c], ecx
call fcn.1005b5f7
pop ecx
push dword [esp + 0x104]
mov dword [esp + 0x1cc], ebx
mov dword [esp + 0x1d0], ebx
mov dword [esp + 0x1d4], ebx
call fcn.1005b5f7
pop ecx
mov dword [esp + 0x104], ebx
mov dword [esp + 0x108], ebx
push dword [esp + 0xb4]
mov dword [esp + 0x110], ebx
call fcn.1005b5f7
mov eax, dword [esp + 0x50]
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], 0xfffffff9
mov dword [esp + 0x3c], edi
mov dword [esp + 0x28], 0x8d3b3e24
pop ecx
mov dword [esp + 0x1d4], eax
mov dword [esp + 0xc], ebx
jmp 0x100512e7
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x2dc], 0xa3191b49
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x100512d4
mov dword [esp + 0xc], ebx
jmp 0x10051303
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x2c8], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x100512f4
xor esi, esi
inc esi
cmp dword [esp + 0x1c], ebx
jne 0x1005131f
mov eax, dword [esp + 0x1c]
mov edx, ebx
mov eax, dword [esp + 0x1c]
jmp 0x10051321
mov edx, esi
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
add eax, edx
add ecx, eax
jne 0x10051337
mov ecx, ebx
cmp dword [esp + 0x1c], ebx
je 0x10051339
mov ecx, esi
xor eax, eax
cmp ecx, 0x2038e85a
setg al
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x1c]
jge 0x10051358
cmp dword [esp + 0x1c], ebx
jne 0x10051360
mov eax, ebx
cmp dword [esp + 0x18], ebx
je 0x10051362
mov eax, esi
imul eax, eax, 0xe57f
mov dword [esp + 0x2e4], eax
mov dword [esp + 0x1c], 0xfffffff7
jmp 0x1005140f
mov dword [esp + 0x28], ebx
mov edx, ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x30], 0xcbde6b78
mov dword [esp + 0x30], 2
mov dword [esp + 0x30], 0x3c94
mov dword [esp + 0x30], 0x9757a83
mov dword [esp + 0x30], 0x4aec7014
mov dword [esp + 0x30], esi
mov dword [esp + 0x30], 0x4463028e
cmp dword [esp + 0x18], ebx
je 0x100513c6
mov edx, esi
mov eax, dword [esp + 0x28]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2e4], eax
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
dec eax
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0xfe0c
setne cl
xor eax, eax
cmp ecx, 0xfffffffa
setg al
mov dword [esp + 0x2c8], eax
dec dword [esp + 0x24]
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0x14
jg 0x1005137c
jmp 0x10053121
push 9
mov dword [esp + 0x20], 0x25b9b55b
mov dword [esp + 0x20], ebx
pop esi
jmp 0x1005152e
mov dword [esp + 0xc], 0xa2768935
mov dword [esp + 0xc], ebx
jmp 0x100514a1
push 3
lea ecx, [esp + 0xac]
call fcn.1002d70f
mov dword [esp + 0x10], ebx
jmp 0x1005146b
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xa8]
mov dword [eax + ecx*4], 0xfffffff9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10051455
cmp dword [esp + 0xc], ebx
jne 0x100514aa
mov eax, dword [esp + 0xa8]
push eax
mov dword [eax], ebx
call fcn.1005b5f7
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
inc dword [esp + 0x10]
pop ecx
cmp dword [esp + 0xc], 0x11
jg 0x10051441
jmp 0x100514d6
cmp dword [esp + 0xa8], 0
je 0x100514d6
push dword [esp + 0xa8]
call fcn.1005b5f7
pop ecx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xc], 0xfffffff1
jmp 0x10051523
mov dword [esp + 0x18], edi
mov dword [esp + 0x18], ebx
jmp 0x10051518
mov dword [esp + 0x10], esi
mov dword [esp + 0x10], 0x12
jmp 0x1005150d
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10051509
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 7
jne 0x100514f8
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xffffffff
jle 0x100514ea
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x100514e0
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xfffffff8
jg 0x10051433
mov eax, dword [0x119045c0]
test al, 2
jne 0x100515dc
or eax, 2
mov dword [0x119045c0], eax
push ebx
mov dword [esp + 0x360], esi
push ebx
mov dword [0x11904580], ebx
mov dword [0x11904584], ebx
call fcn.1003a999
mov dword [0x11904580], eax
mov dword [0x11904588], ebx
mov dword [0x11904590], ebx
mov byte [esp + 0x35c], 0xb
mov ecx, 0x11904588
mov dword [esp + 0x230], eax
lea eax, [esp + 0x230]
push eax
push 0x10
push ebx
lea eax, [esp + 0x2f4]
mov dword [0x1190459c], 0x3f800000
push eax
mov dword [0x1190458c], ebx
call fcn.1003a771
push 0x100747d9
mov dword [0x11904594], 7
mov dword [0x11904598], 8
call fcn.1005b45e
or dword [esp + 0x360], 0xffffffff
pop ecx
mov dword [esp + 0xc], edi
lea ecx, [esp + 0x18c]
push 3
call fcn.1002d70f
mov dword [esp + 0x10], ebx
jmp 0x10051606
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18c]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x100515f4
mov dword [esp + 0xc], ebx
jmp 0x1005167c
mov dword [esp + 0x18], 8
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1005162c
call dword [sym.imp.KERNEL32.dll_GetACP]
mov dword [esp + 0x18], ebx
jmp 0x10051672
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x10], 0x16
cmp dword [esp + 0x10], 0xfffffff7
jg 0x1005166e
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0x28], 0xfffffffa
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x28]
mov dword [ecx + 8], eax
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff7
jle 0x10051650
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jg 0x10051632
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0x13
jne 0x10051613
cmp dword [esp + 0x18c], 0
je 0x100516af
push dword [esp + 0x18c]
call fcn.1005b5f7
pop ecx
mov dword [esp + 0x18c], ebx
mov dword [esp + 0x190], ebx
mov dword [esp + 0x194], ebx
xorps xmm0, xmm0
movdqu xmmword [esp + 0x210], xmm0
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x10], ebx
jmp 0x100516dc
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x2ec], 7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x100516c9
mov dword [esp + 0x18], ebx
jmp 0x10051703
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x100516ff
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessTimes]
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jle 0x100516e9
mov dword [esp + 0x18], 0xffffffe4
cmp dword [esp + 0x18], 0xffffffe2
jg 0x100519f5
push 0xa
pop esi
mov dword [esp + 0x28], esi
mov dword [esp + 0xc], 0x5b40194d
mov dword [esp + 0xc], 2
cmp dword [esp + 0xc], ebx
jl 0x100519e6
mov dword [esp + 0x10], ebx
mov dword [esp + 0x10], 2
cmp dword [esp + 0x10], ebx
jl 0x100519dc
mov dword [esp + 0x1c], 0x2fdcba86
mov dword [esp + 0x20], 0x23a0
cmp dword [esp + 0x20], 0xbb5
jge 0x1005198a
lea eax, [esp + 0x260]
mov dword [esp + 0x260], ebx
push eax
push 0xf4247
lea ecx, [esp + 0x100]
mov dword [esp + 0x100], ebx
mov dword [esp + 0x104], ebx
mov dword [esp + 0x108], ebx
call fcn.1002e434
mov dword [esp + 0x35c], 0xc
mov ecx, edi
mov ebx, dword [esp + 0xf8]
cmp ecx, esi
jge 0x100517c4
mov dword [ebx + ecx*4], ecx
jmp 0x100517e5
mov esi, edi
mov eax, ecx
test ecx, ecx
jle 0x100517dc
cdq
idiv dword [esp + 0x28]
test edx, edx
jle 0x100517d8
imul esi, edx
test eax, eax
jg 0x100517cc
mov eax, dword [ebx + esi*4]
push 0xa
mov dword [ebx + ecx*4], eax
pop esi
inc ecx
cmp ecx, 0xf4247
jl 0x100517bb
lea eax, [esp + 0x23c]
xor ebx, ebx
push eax
push esi
lea ecx, [esp + 0xdc]
mov dword [esp + 0x244], ebx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], ebx
call fcn.1002e434
lea eax, [esp + 0xd4]
mov byte [esp + 0x35c], 0xd
push eax
push 0xf4247
lea ecx, [esp + 0x20c]
mov dword [esp + 0x20c], ebx
mov dword [esp + 0x210], ebx
mov dword [esp + 0x214], ebx
call fcn.1002e554
cmp dword [esp + 0xd4], ebx
je 0x10051882
push dword [esp + 0xd4]
call fcn.1005b5f7
pop ecx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], ebx
mov esi, dword [esp + 0x204]
mov ebx, dword [esp + 0xf8]
add esi, 0xc
push 4
pop edx
mov eax, dword [esi - 0xc]
mov ecx, dword [esi]
mov eax, dword [edx + eax]
mov dword [edx + ecx], eax
add edx, 4
cmp edx, 0x28
jl 0x10051896
mov ecx, dword [ebx + edi*4]
mov eax, dword [esi]
add esi, 0xc
inc dword [eax + ecx*4]
inc edi
cmp edi, 0xf4247
jl 0x10051893
lea eax, [esp + 0x74]
push eax
push 0x100080f4
call fcn.1005b040
mov eax, dword [esp + 0x7c]
pop ecx
pop ecx
push 0
pop ebx
test eax, eax
je 0x10051944
mov esi, dword [esp + 0x204]
dec eax
mov dword [esp + 0x74], eax
lea eax, [esp + 0x24c]
push eax
lea eax, [esp + 0x23c]
push eax
lea eax, [esp + 0x24c]
push eax
push 0x100081ac
call fcn.1005b040
imul eax, dword [esp + 0x254], 0xc
mov edx, dword [esp + 0x25c]
mov ecx, dword [eax + esi - 0xc]
imul eax, dword [esp + 0x248], 0xc
mov eax, dword [eax + esi]
mov eax, dword [eax + edx*4]
sub eax, dword [ecx + edx*4]
push eax
push 0x10008100
call fcn.1005b488
mov eax, dword [esp + 0x8c]
add esp, 0x18
test eax, eax
jne 0x100518e0
dec eax
lea ecx, [esp + 0x204]
mov dword [esp + 0x74], eax
call fcn.1002e612
or dword [esp + 0x35c], 0xffffffff
mov eax, dword [esp + 0xf8]
test eax, eax
je 0x10051984
push eax
call fcn.1005b5f7
pop ecx
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], ebx
push 0xa
xor edi, edi
pop esi
inc edi
mov dword [esp + 0x20], 0x6ab2aee5
mov dword [esp + 0x1c], 2
cmp dword [esp + 0x1c], ebx
jl 0x100519b8
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x100519b2
push ebx
call dword [sym.imp.USER32.dll_DestroyCursor]
dec dword [esp + 0x1c]
jns 0x100519a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + eax*4 + 0x2ec]
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x2ec], ecx
mov dword [esp + 0x20], ecx
dec dword [esp + 0x10]
jns 0x10051754
dec dword [esp + 0xc]
jns 0x1005173e
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xffffffe2
jle 0x10051724
lea eax, [esp + 0x6c]
push eax
call fcn.1005321c
mov esi, dword [eax]
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], 0xfffffff6
mov dword [esp + 0x18], ebx
mov dword [esp + 0x28], esi
cmp dword [esp + 0x18], ebx
je 0x10051b05
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x20], 0xc443
mov dword [esp + 0x10], ebx
jmp 0x10051af0
mov dword [esp + 0xc], 0xfffffffb
mov dword [esp + 0x1c], 0xffffffff
mov eax, dword [esp + 0x20]
imul eax, dword [esp + 0x18]
sub eax, dword [esp + 0xc]
je 0x10051ab4
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], edi
mov eax, ebx
cmp dword [esp + 0x1c], ebx
je 0x10051a69
mov eax, edi
mov edx, dword [esp + 0x18]
xor ecx, ecx
add edx, eax
mov eax, dword [esp + 0x18]
cmp edx, eax
setge cl
cmp dword [esp + 0x18], ecx
jge 0x10051ab4
mov dword [esp + 0xc], ebx
jmp 0x10051a9b
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10051a97
call dword [sym.imp.KERNEL32.dll_GetTickCount]
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xfffffffb
jne 0x10051a86
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
jmp 0x10051aec
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], ebx
jmp 0x10051ae5
mov dword [esp + 0xc], 3
jmp 0x10051ada
cmp dword [esp + 0x24], ebx
jne 0x10051ae1
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0xd
jl 0x10051ad0
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0x1b
je 0x10051ac6
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffed
jle 0x10051a38
inc dword [esp + 0x18]
jne 0x10051a1f
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10051b18
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
cmp byte [ebp + 0xc], 0
jne 0x10051b26
test esi, esi
jne 0x100522fa
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x10], ebx
jmp 0x10051b47
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x2d0], 7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10051b34
push 2
mov dword [esp + 0x1c], ebx
pop esi
jmp 0x10051b71
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10051b6d
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessTimes]
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jle 0x10051b57
mov dword [esp + 0x18], 0xffffffe4
jmp 0x10051bfd
mov dword [esp + 0xc], 0x5b40194d
mov dword [esp + 0xc], esi
cmp dword [esp + 0xc], ebx
jl 0x10051bf9
mov dword [esp + 0x10], ebx
mov dword [esp + 0x10], esi
cmp dword [esp + 0x10], ebx
jl 0x10051bf3
mov dword [esp + 0x1c], 0x2fdcba86
mov dword [esp + 0x20], 0x6ab2aee5
mov dword [esp + 0x1c], esi
cmp dword [esp + 0x1c], ebx
jl 0x10051bd3
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10051bcd
push ebx
call dword [sym.imp.USER32.dll_DestroyCursor]
dec dword [esp + 0x1c]
jns 0x10051bbb
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + eax*4 + 0x2d0]
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x2d0], ecx
mov dword [esp + 0x20], ecx
dec dword [esp + 0x10]
jns 0x10051ba1
dec dword [esp + 0xc]
jns 0x10051b93
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xffffffe2
jle 0x10051b81
mov dl, byte [ebp + 0xc]
lea eax, [esp + 0x340]
mov ecx, dword [esp + 0x6c]
push eax
call fcn.10043749
cmp byte [ebp + 0xc], 0
lea edi, [esp + 0x214]
mov esi, eax
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x10051e32
cmp dword [esp + 0x218], 0
je 0x10051e32
mov eax, dword [esp + 0x21c]
mov dword [esp + 0x1c], 0xf065f4b
mov dword [esp + 0x2c], 0xf2b78262
mov dword [esp + 0x20], 4
mov dword [esp + 0x1d8], eax
mov dword [esp + 0xc], ebx
jmp 0x10051c81
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x134], 0x20624039
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x10051c6e
push 2
mov dword [esp + 0x10], ebx
pop esi
jmp 0x10051ca1
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x5c], 1
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x10051c91
mov dword [esp + 0x60], esi
cmp dword [esp + 0x60], ebx
jl 0x10051da7
mov dword [esp + 0x18], 0xf55e00fe
mov dword [esp + 0x30], 0xb59008cf
mov dword [esp + 0x18], esi
cmp dword [esp + 0x18], ebx
jl 0x10051d80
mov dword [esp + 0x10], ebx
jmp 0x10051cec
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x328], 0x1860ec01
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10051cd9
mov eax, dword [esp + 0x60]
cmp dword [esp + eax*4 + 0x134], ebx
je 0x10051d41
mov dword [esp + 0x10], 0xc4185a1f
mov dword [esp + 0x30], 0x27f7b6fe
mov dword [esp + 0x24], 0xfdbd
mov dword [esp + 0x10], esi
cmp dword [esp + 0x10], ebx
jl 0x10051d3b
mov eax, dword [esp + 0x60]
cmp dword [esp + eax*4 + 0x134], ebx
jne 0x10051d3b
cmp dword [esp + 0x18], ebx
jne 0x10051d3b
dec dword [esp + 0x10]
jns 0x10051d22
dec dword [esp + 0x24]
jmp 0x10051d76
mov eax, dword [esp + 0x18]
cmp dword [esp + eax*4 + 0x134], ebx
jne 0x10051d80
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10051d76
push ebx
push 0x187f
push ebx
push 0x14df
push 0x25cb
push ebx
push 0x20fb
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
dec dword [esp + 0x18]
jns 0x10051cd3
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10051d9d
push 0x1591
push ebx
push 0x1b20
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
dec dword [esp + 0x60]
jns 0x10051cb5
cmp dword [esp + 0x5c], ebx
jne 0x10051e13
mov eax, dword [esp + 0x60]
cmp dword [esp + 0x1c], ebx
je 0x10051dd8
mov eax, dword [esp + 0x60]
mov eax, dword [esp + 0x13c]
mov eax, dword [esp + 0x13c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x138]
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x60], ebx
jne 0x10051de2
mov eax, dword [esp + 0x1c]
inc dword [esp + 0x2c]
mov dword [esp + 0x60], ebx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x138]
dec edx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setne cl
mov dword [esp + 0x138], ecx
cmp dword [esp + 0x2c], ecx
jne 0x10051e13
mov ecx, ebx
jmp 0x10051e16
xor ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0xfffffffa
setg al
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x218]
mov dword [esp + 0x1dc], eax
jmp 0x10051e35
push 2
pop esi
cmp dword [esp + 0x28], 0
jne 0x100522fa
cmp dword [esp + 0x210], 0
jle 0x100522fa
mov dword [esp + 0x18], 0xf6af1124
mov dword [esp + 0x20], 0x15912491
mov dword [esp + 0x18], ebx
jmp 0x10051fef
mov dword [esp + 0x20], 0x13de
cmp dword [esp + 0x20], 0x10f8
jge 0x10051fb8
lea eax, [esp + 0x50]
push eax
push ecx
lea eax, [esp + 0x80]
mov ecx, 0x10663c90
push eax
call fcn.1002d30e
pop ecx
mov ecx, eax
call fcn.1002d30e
mov esi, dword [esp + 0x78]
xorps xmm0, xmm0
mov edi, dword [esp + 0x7c]
mov eax, esi
movlpd qword [esp + 0x30], xmm0
or eax, edi
mov eax, dword [esp + 0x34]
je 0x10051f64
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], eax
add esi, 0xffffffff
lea eax, [esp + 0xc0]
push eax
adc edi, 0xffffffff
mov dword [esp + 0x7c], esi
push ecx
lea edx, [esp + 0x4b]
mov dword [esp + 0x84], edi
call fcn.10053552
pop ecx
mov ecx, eax
call fcn.1002d30e
mov al, byte [esp + 0x43]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
cmp al, 0x2b
jne 0x10051f13
add ecx, dword [esp + 0xc0]
adc edx, dword [esp + 0xc4]
jmp 0x10051f44
cmp al, 0x2d
jne 0x10051f4c
cmp dword [esp + 0xc4], edx
jl 0x10051f36
jg 0x10051f2b
cmp dword [esp + 0xc0], ecx
jbe 0x10051f36
add dword [esp + 0x10], 1
adc dword [esp + 0x2c], ebx
jmp 0x10051f4c
sub ecx, dword [esp + 0xc0]
sbb edx, dword [esp + 0xc4]
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], ecx
mov esi, dword [esp + 0x78]
mov eax, esi
mov edi, dword [esp + 0x7c]
or eax, edi
jne 0x10051ec8
mov eax, dword [esp + 0x2c]
jmp 0x10051f76
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x10], ebx
xor ebx, ebx
push eax
push dword [esp + 0x14]
add esi, 0xffffffff
push edx
adc edi, 0xffffffff
mov dword [esp + 0x84], esi
push ecx
mov ecx, 0x10663bd8
mov dword [esp + 0x8c], edi
call fcn.1003dbad
mov edx, 0x10008320
mov ecx, eax
call fcn.1003219e
mov ecx, eax
call fcn.1003dbad
push eax
call fcn.10031f18
pop ecx
push 2
pop esi
mov dword [esp + 0x10], ebx
jmp 0x10051fd1
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x280], 0xfffe
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10051fbe
cmp dword [esp + 0x280], ebx
jne 0x10051ffa
mov eax, dword [esp + 0x280]
mov dword [esp + 0x20], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x16
jne 0x10051e67
mov dword [esp + 0x1c], 0xad313dd3
xor edi, edi
mov dword [esp + 0x30], 0xa0a5dec4
inc edi
mov dword [esp + 0x20], 0xdd4
mov dword [esp + 0x10], ebx
jmp 0x1005202e
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x144], 0xa3dbc56e
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x1005201b
mov dword [esp + 0x1c], ebx
jmp 0x1005224e
mov dword [esp + 0x18], 0x2afe01bd
lea ecx, [esp + 0x180]
push 3
call fcn.1002d70f
mov dword [esp + 0x35c], 0xe
mov dword [esp + 0x2c], 0xfffffffb
mov dword [esp + 0x24], 0x855bbb78
mov dword [esp + 0x10], ebx
jmp 0x1005208a
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x180]
mov dword [eax + ecx*4], 0xe4b7834d
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10052074
mov dword [esp + 0x18], 0x15
jmp 0x1005217e
mov dword [esp + 0xc], ebx
lea ecx, [esp + 0x1f8]
mov dword [esp + 0x30], 0x4ce55459
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x30], 0xfffffff6
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x30], 0xa67d9261
mov dword [esp + 0x30], 0xaee50770
mov dword [esp + 0x30], 0xa4d59ff4
mov dword [esp + 0x30], 0x828451d7
mov dword [esp + 0x30], 0xf844ba92
mov dword [esp + 0x30], 0x7c4e7cc
push 3
call fcn.1002d70f
mov dword [esp + 0x24], ebx
mov dword [esp + 0x10], ebx
jmp 0x10052128
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1f8]
mov dword [eax + ecx*4], 0x426067bb
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10052112
mov dword [esp + 0xc], 0xfffffffa
jmp 0x10052143
cmp dword [esp + 0xc], ebx
jne 0x1005214a
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffff
je 0x10052139
dec dword [esp + 0x24]
cmp dword [esp + 0x1f8], 0
je 0x1005217a
push dword [esp + 0x1f8]
call fcn.1005b5f7
pop ecx
mov dword [esp + 0x1f8], ebx
mov dword [esp + 0x1fc], ebx
mov dword [esp + 0x200], ebx
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xfffffff8
jl 0x1005209e
mov eax, dword [esp + 0x2c]
xor ecx, ecx
cmp eax, 0x4d9070a6
setle cl
cmp ecx, 0xfff9
sbb eax, eax
xor edx, edx
neg eax
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
cmp eax, ecx
setge dl
xor eax, eax
imul edx, dword [esp + 0x144]
cmp edx, 0xbe62
setle al
cmp eax, dword [esp + 0x20]
jl 0x100521d8
mov ecx, ebx
cmp dword [esp + 0x144], ebx
je 0x100521da
mov ecx, edi
mov esi, dword [esp + 0x180]
xor eax, eax
cmp ecx, dword [esi + 8]
mov ecx, dword [esp + 0x2c]
setg al
xor edx, edx
add ecx, eax
mov eax, dword [esp + 0x2c]
cmp ecx, eax
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x180]
setne dl
mov eax, dword [eax]
sub eax, ecx
xor ecx, ecx
imul edx, eax
mov eax, dword [esp + 0x18]
neg edx
cmp edx, 0xffffffff
setne cl
or dword [esp + 0x35c], 0xffffffff
push dword [esp + 0x180]
sub ecx, eax
inc ecx
mov dword [esi + 8], ecx
call fcn.1005b5f7
mov dword [esp + 0x184], ebx
mov dword [esp + 0x188], ebx
mov dword [esp + 0x18c], ebx
dec dword [esp + 0x20]
pop ecx
cmp dword [esp + 0x1c], 0xffffffe4
je 0x1005203d
cmp dword [esp + 0x214], 0
je 0x100522fa
push 8
pop eax
mov dword [esp + 0x270], eax
mov dword [esp + 0x274], eax
mov dword [esp + 0x278], eax
mov dword [esp + 0x27c], eax
mov dword [esp + 0x20], 9
mov dword [esp + 0x10], ebx
jmp 0x100522a7
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x334], 0x8abc106e
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10052294
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x100522c1
mov dword [esp + 0x18], 9
lea ecx, [esp + 0x110]
push 3
call fcn.1002d70f
mov dword [esp + 0x35c], 0xf
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x20], 0x1e1a
cmp dword [esp + 0x20], 0x9a5
jge 0x10052497
lea eax, [esp + 0x150]
mov esi, 0x100080f4
push eax
push esi
call fcn.1005b040
lea eax, [esp + 0x174]
push eax
push esi
call fcn.1005b040
mov edi, dword [esp + 0x17c]
lea eax, [esp + 0x250]
add esp, 0x10
mov dword [esp + 0x2c], edi
xor esi, esi
mov dword [esp + 0x9c], ebx
inc esi
mov dword [esp + 0xa0], ebx
lea ecx, [esp + 0x9c]
mov dword [esp + 0x240], esi
push eax
push esi
mov dword [esp + 0xac], ebx
call fcn.1002e434
mov byte [esp + 0x35c], 0x10
cmp dword [esp + 0x150], esi
jle 0x10052408
mov ebx, edi
lea eax, [esp + 0x248]
push eax
push 0x100080f4
call fcn.1005b040
pop ecx
pop ecx
mov ecx, dword [esp + 0x248]
add edi, ecx
lea eax, [ecx + ecx]
cmp eax, dword [esp + 0x16c]
jg 0x100523f8
lea eax, [esi + 1]
add ebx, ecx
mov dword [esp + 0x250], eax
lea ecx, [esp + 0x9c]
lea eax, [esp + 0x250]
push eax
call fcn.1002d83e
inc esi
cmp esi, dword [esp + 0x150]
jl 0x100523af
mov dword [esp + 0x2c], ebx
xor ebx, ebx
mov eax, dword [esp + 0x2c]
add eax, eax
cmp eax, edi
jle 0x1005245d
mov esi, dword [esp + 0xa0]
sub esi, dword [esp + 0x9c]
sar esi, 2
push esi
push 0x10008100
call fcn.1005b488
mov dword [esp + 0x28], ebx
pop ecx
pop ecx
test esi, esi
je 0x10052456
mov edi, 0x1000818c
mov eax, dword [esp + 0x9c]
push dword [eax + ebx*4]
push edi
call fcn.1005b488
inc ebx
pop ecx
pop ecx
cmp ebx, esi
jb 0x1005243d
xor ebx, ebx
push 0x1000805a
jmp 0x10052462
push 0x10008444
call fcn.1005b826
mov byte [esp + 0x360], 0xf
mov eax, dword [esp + 0xa0]
pop ecx
test eax, eax
je 0x10052497
push eax
call fcn.1005b5f7
pop ecx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x10], ebx
jmp 0x100524b3
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x110]
mov dword [eax + ecx*4], 0xfffffffa
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1005249d
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], 9
jl 0x10052767
mov edi, dword [esp + 0x110]
xor esi, esi
lea ecx, [esp + 0x1bc]
inc esi
push esi
call fcn.1002d70f
mov byte [esp + 0x35c], 0x11
mov dword [esp + 0x1c], 0x4dbf0cf
mov dword [esp + 0xc], 0xb994b748
mov dword [esp + 0x2c], 4
mov dword [esp + 0x24], 0xf218d362
mov dword [esp + 0x24], 0xfffffffc
mov dword [esp + 0x10], ebx
jmp 0x1005252c
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1bc]
mov dword [eax + ecx*4], 0x4346
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10052516
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x1c], ebx
jne 0x1005256b
mov dword [esp + 0xc], 0xfffffffb
xor ecx, ecx
mov eax, dword [esp + 0xc]
cmp eax, 0x1aa2910a
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
setne cl
add ecx, 0xfd47
mov dword [edi + 8], ecx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
sub eax, dword [edi + 8]
neg eax
sbb eax, eax
inc eax
dec eax
je 0x10052582
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
xor edx, edx
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x2c], 0x1e9a578f
cmp eax, 0x35fe
mov eax, dword [esp + 0x1c]
setne dl
xor ecx, ecx
cmp edx, eax
setg cl
cmp ecx, dword [esp + 0x2c]
jge 0x100525b5
mov ecx, ebx
cmp dword [esp + 0x1c], ebx
je 0x100525b7
mov ecx, esi
mov eax, dword [esp + 0x1bc]
xor edx, edx
inc dword [eax]
cmp dword [eax], ecx
setl dl
sub edx, dword [esp + 0x2c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
sub edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
cmp edx, eax
setge cl
cmp ecx, 0xa3821c76
jae 0x100526a1
push 4
pop esi
push esi
lea ecx, [esp + 0x1a8]
call fcn.1002d70f
mov dword [esp + 0xc], 0xfffffff9
mov dword [esp + 0x10], ebx
jmp 0x1005261b
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1a4]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10052609
mov eax, dword [esp + 0x1a4]
xor edx, edx
mov eax, dword [eax + 8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x110]
mov ecx, dword [eax]
mov eax, dword [esp + 0x1a4]
sub ecx, dword [edi + 4]
cmp ecx, dword [eax + 4]
setle dl
mov dword [edi + 8], edx
mov dword [esp + 0xc], esi
jmp 0x10052676
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10052672
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xfffffff4
jg 0x1005265f
push dword [esp + 0x1a4]
call fcn.1005b5f7
pop ecx
mov dword [esp + 0x1a4], ebx
mov dword [esp + 0x1a8], ebx
mov dword [esp + 0x1ac], ebx
jmp 0x100526bf
mov dword [esp + 0x24], ebx
xor edx, edx
mov dword [esp + 0x20], 0xffffffff
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
cmp eax, ecx
setne dl
mov dword [edi + 4], edx
mov eax, dword [esp + 0x1c]
neg eax
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, 0xfffffffa
setge cl
xor eax, eax
cmp ecx, 0xfffffff6
setne al
xor edx, edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x1bc]
cmp eax, dword [ecx]
mov eax, dword [esp + 0x2c]
mov esi, dword [ecx]
setg dl
add eax, edx
xor ecx, ecx
cmp eax, esi
setge cl
xor eax, eax
cmp ecx, esi
setge al
xor ecx, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
cmp dword [edi + 8], ebx
mov eax, dword [esp + 0x110]
mov byte [esp + 0x35c], 0xf
setne cl
push dword [esp + 0x1bc]
mov dword [eax], ecx
call fcn.1005b5f7
mov dword [esp + 0x1c0], ebx
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c8], ebx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 9
pop ecx
jge 0x100524d0
or dword [esp + 0x35c], 0xffffffff
cmp dword [esp + 0x110], 0
je 0x1005279b
push dword [esp + 0x110]
call fcn.1005b5f7
pop ecx
mov dword [esp + 0x110], ebx
mov dword [esp + 0x114], ebx
mov dword [esp + 0x118], ebx
lea ecx, [esp + 0x210]
call fcn.1004c0f0
push 2
lea ecx, [esp + 0xcc]
call fcn.1002d70f
xor edi, edi
mov dword [esp + 0x35c], 0x12
inc edi
mov dword [esp + 0xc], 9
mov dword [esp + 0x18], edi
lea ecx, [esp + 0x128]
push edi
call fcn.1002d70f
mov byte [esp + 0x35c], 0x13
mov dword [esp + 0x30], 0xc0429090
mov dword [esp + 0xc], ebx
jmp 0x10052808
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xc8]
mov dword [eax + ecx*4], 0x342eb90d
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x100527f2
mov dword [esp + 0xc], ebx
jmp 0x1005282b
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x128]
mov dword [eax + ecx*4], 0xfffffff9
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x10052815
mov dword [esp + 0xc], edi
cmp dword [esp + 0xc], ebx
jl 0x10052a12
mov dword [esp + 0x18], 0xfffffffa
mov dword [esp + 0x24], 0x722ba7b7
mov dword [esp + 0x88], ebx
mov dword [esp + 0x58], 0x70b168f9
mov dword [esp + 0x44], 0xfffffff9
mov dword [esp + 0x1c], 0x23637b30
mov dword [esp + 0x98], 0x5ab4d258
mov dword [esp + 0x4c], 0xf93be41b
mov dword [esp + 0x18], edi
cmp dword [esp + 0x18], ebx
jl 0x100529f3
mov dword [esp + 0x2c], 8
mov dword [esp + 0x20], edi
mov dword [esp + 0x58], 0xa01c77dc
mov dword [esp + 0x10], 0xfffffff9
mov dword [esp + 0x58], 0x104
mov dword [esp + 0x10], ebx
jmp 0x100528cc
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x168], 4
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x100528b9
mov dword [esp + 0x2c], edi
cmp dword [esp + 0x2c], ebx
jl 0x1005297d
mov dword [esp + 0x10], 0xfffffffb
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x10], 0x831966c4
mov dword [esp + 0x10], 8
mov dword [esp + 0x10], 0xd065835a
mov dword [esp + 0x10], 0xffffffff
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xc8]
mov ecx, dword [eax + ecx*4]
sub ecx, dword [eax + edx*4]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x88]
mov eax, dword [esp + 0x4c]
dec dword [esp + 0x4c]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], ebx
jmp 0x1005296d
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x128]
mov dword [eax + edx*4], ecx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], ebx
jle 0x10052957
dec dword [esp + 0x2c]
jns 0x100528e0
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x168]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x168]
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0xc8]
imul esi, dword [eax]
mov eax, dword [esp + 0x18]
sub esi, dword [ecx + edx*4]
neg esi
sbb esi, esi
xor ecx, ecx
inc esi
cmp esi, eax
mov eax, dword [esp + 0x128]
setg cl
mov dword [eax], ecx
lea eax, [ecx + 0x8bf5]
cmp eax, dword [esp + 0x24]
jne 0x100529e3
mov eax, edi
cmp dword [esp + 0x30], ebx
jne 0x100529e5
mov eax, ebx
mov dword [esp + 0x24], eax
dec dword [esp + 0x18]
jns 0x1005288f
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc8]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
dec dword [esp + 0xc]
jns 0x1005283f
mov dword [esp + 0x18], 0x14
jmp 0x10052a77
push 3
lea ecx, [esp + 0x224]
call fcn.1002d70f
mov dword [esp + 0x10], ebx
jmp 0x10052a46
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x220]
mov dword [eax + ecx*4], 0x3ff4914d
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10052a30
mov eax, dword [esp + 0x220]
push eax
inc dword [eax + 4]
call fcn.1005b5f7
mov dword [esp + 0x224], ebx
mov dword [esp + 0x228], ebx
mov dword [esp + 0x22c], ebx
dec dword [esp + 0x1c]
pop ecx
cmp dword [esp + 0x18], 0xffffffe2
jne 0x10052a1c
cmp dword [esp + 0x128], 0
je 0x10052aaa
push dword [esp + 0x128]
call fcn.1005b5f7
pop ecx
mov dword [esp + 0x128], ebx
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x130], ebx
or dword [esp + 0x35c], 0xffffffff
cmp dword [esp + 0xc8], 0
je 0x10052ade
push dword [esp + 0xc8]
call fcn.1005b5f7
pop ecx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], ebx
mov eax, dword [esp + 0x28]
test eax, eax
je 0x10053030
mov edx, dword [esp + 0x38]
mov ecx, eax
call fcn.10050596
mov dword [esp + 0x38], 0xfffffff6
mov dword [esp + 0x58], edi
mov dword [esp + 0x44], 9
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x10], ebx
jmp 0x10052b29
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x198], 0xb9f9b319
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10052b16
mov dword [esp + 0x19c], 0x13
jmp 0x1005300c
mov dword [esp + 0x10], 0xf506e60b
mov dword [esp + 0x288], edi
mov dword [esp + 0x28c], edi
mov dword [esp + 0x290], edi
mov dword [esp + 0x294], edi
mov dword [esp + 0x28], 0x8c537847
mov dword [esp + 0x10], ebx
jmp 0x10052b85
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x2a4], 0xfffffffb
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10052b72
mov dword [esp + 0x30], 0x24e4
cmp dword [esp + 0x30], 0x127c
jge 0x10052cfb
lea eax, [esp + 0x68]
push eax
push 0x100080f0
call fcn.1005b040
mov eax, dword [esp + 0x70]
pop ecx
pop ecx
test eax, eax
je 0x10052cf6
mov dword [esp + 0x10], 6
jmp 0x10052ffa
cmp dword [esp + 0x19c], 0xfffffff2
jge 0x10052b40
lea eax, [esp + 0x148]
push eax
call fcn.100531ba
mov ecx, dword [esp + 0x1d4]
mov dword [eax], ecx
push edi
lea ecx, [esp + 0x2b4]
call fcn.1002d70f
push edi
lea ecx, [esp + 0x2c0]
mov dword [esp + 0x360], 0x17
call fcn.1002d70f
mov dword [esp + 0x10], 0x6210b999
mov dword [esp + 0xc], ebx
jmp 0x10053076
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x2b0]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x10053063
mov dword [esp + 0xc], ebx
jmp 0x10053094
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x10053082
mov ecx, dword [esp + 0x2bc]
mov edx, dword [esp + 0x2b0]
mov dword [ecx], ebx
mov eax, dword [ecx]
mov dword [edx + eax*4], 0xe56f9b2c
inc dword [ecx]
cmp dword [ecx], edi
jl 0x100530aa
mov dword [esp + 0x10], ebx
jmp 0x10053103
mov dword [esp + 0x30], edi
mov dword [esp + 0x30], 0x8e1b8814
mov dword [esp + 0x30], 0xe28fdeb7
mov dword [esp + 0x30], 0x8f90a3cf
mov dword [esp + 0x30], 0x4ffcf33f
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x30], 7
mov dword [esp + 0x38], 0x1525
dec dword [esp + 0x38]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jle 0x100530bf
lea ecx, [esp + 0x2bc]
call fcn.1002d956
lea ecx, [esp + 0x2b0]
call fcn.1002d956
mov eax, dword [ebp + 8]
lea esi, [esp + 0x1d4]
mov ecx, dword [esp + 0x354]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret