Function at 0x10050d10
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x144
mov eax, dword [0x101af0fc]
xor eax, esp
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x14c]
push ebx
push ebp
push esi
mov ebx, 1
push edi
mov edi, dword [esp + 0x158]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x38], ebx
mov edx, edx
xor ebp, ebp
mov dword [esp + 0x40], ebp
test ah, ah
mov esi, esi
xchg ebx, eax
xchg ebx, eax
test eax, 0x493d
mov cl, cl
test eax, eax
push eax
pop eax
test al, al
xor esi, esi
mov dword [esp + 0x20], esi
test edx, edx
mov dword [esp + 0x34], ebp
test esi, esi
mov al, 0x40
mov byte [esp + 0x10], 0x62
mov byte [esp + 0x11], al
mov byte [esp + 0x12], 0
mov bh, bh
mov byte [esp + 0x14], 0x42
mov byte [esp + 0x15], al
mov byte [esp + 0x16], 0
test bl, bl
push 2
lea eax, [esp + 0x14]
push eax
push edi
call fcn.101048a4
add esp, 0xc
test eax, eax
je 0x10050dbe
push 2
lea ecx, [esp + 0x18]
push ecx
push edi
call fcn.101048a4
add esp, 0xc
test eax, eax
jne 0x10050dcc
mov dword [esp + 0x34], ebx
mov esi, esi
add edi, 2
test eax, 0x43ab
push 0x1016571c
push edi
call fcn.101020d0
add esp, 8
test eax, eax
je 0x10050fce
test ah, ah
cmp edi, ebp
je 0x10051268
mov ebx, 0x64
cmp esi, 0xa
jge 0x10051264
test ah, ah
mov dword [esp + 0x38], ebp
test dl, dl
mov dword [esp + 0x40], ebp
test dl, dl
mov dword [esp + 0x20], ebp
mov dword [esp + 0x134], ebp
mov dword [esp + 0x24], ebp
test bh, bh
mov dword [esp + 0x28], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dh, dh
mov byte [esp + 0x13c], 0x25
mov byte [esp + 0x13d], bl
mov byte [esp + 0x13e], 0x2e
mov byte [esp + 0x13f], 0x25
mov byte [esp + 0x140], bl
mov byte [esp + 0x141], 0x2e
mov byte [esp + 0x142], 0x25
mov byte [esp + 0x143], bl
mov byte [esp + 0x144], 0x2d
mov byte [esp + 0x145], 0x25
mov byte [esp + 0x146], bl
mov byte [esp + 0x147], 0x2e
mov byte [esp + 0x148], 0x25
mov byte [esp + 0x149], bl
mov byte [esp + 0x14a], 0x2e
mov byte [esp + 0x14b], 0x25
mov byte [esp + 0x14c], bl
mov byte [esp + 0x14d], 0
test eax, 0xb7c
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x144]
push eax
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x154]
push edx
push edi
call fcn.10104175
add esp, 0x20
test edi, edi
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x1c]
mov dword [esp + esi*4 + 0x6c], eax
test dl, dl
cmp eax, ebp
jge 0x10050f02
mov dword [esp + esi*4 + 0x6c], ebp
test bl, bl
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
add edx, ecx
mov dword [esp + esi*4 + 0x44], edx
nop
mov eax, 0x168
cmp edx, eax
jle 0x10050f20
mov dword [esp + esi*4 + 0x44], eax
mov bl, bl
mov eax, dword [esp + 0x134]
sub eax, dword [esp + 0x18]
mov dword [esp + esi*4 + 0x94], eax
test dl, dl
cmp eax, ebp
jge 0x10050f41
mov dword [esp + esi*4 + 0x94], ebp
test eax, eax
mov ecx, dword [esp + 0x134]
mov edx, dword [esp + 0x18]
add edx, ecx
mov dword [esp + esi*4 + 0xbc], edx
test eax, eax
cmp edx, ebx
jle 0x10050f64
mov dword [esp + esi*4 + 0xbc], ebx
mov bl, bl
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x28]
mov dword [esp + esi*4 + 0x10c], eax
test bl, bl
cmp eax, ebp
jge 0x10050f82
mov dword [esp + esi*4 + 0x10c], ebp
test eax, eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
add edx, ecx
mov dword [esp + esi*4 + 0xe4], edx
nop
cmp edx, ebx
jle 0x10050fa1
mov dword [esp + esi*4 + 0xe4], ebx
push ecx
pop ecx
push 0x10165378
push edi
call fcn.101020d0
add esp, 8
mov edi, eax
push ebx
pop ebx
cmp edi, ebp
je 0x10050fbc
add edi, 1
test esi, esi
add esi, 1
test bl, bl
cmp edi, ebp
jne 0x10050df1
jmp 0x10051264
push 0x10165718
push edi
call fcn.101020d0
add esp, 8
test eax, eax
je 0x100510d2
nop
cmp edi, ebp
je 0x10051268
mov ebx, 0x64
cmp esi, 0xa
jge 0x10051264
test eax, eax
mov dword [esp + 0x38], ebp
test esi, esi
mov dword [esp + 0x40], 1
nop
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], ebp
mov al, al
mov byte [esp + 0x134], 0x23
mov byte [esp + 0x135], 0x25
mov byte [esp + 0x136], bl
mov byte [esp + 0x137], 0x2d
mov byte [esp + 0x138], 0x25
mov byte [esp + 0x139], bl
mov byte [esp + 0x13a], 0
test dh, dh
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x13c]
push edx
push edi
call fcn.10104175
add esp, 0x10
test eax, 0x2c55
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x24]
mov dword [esp + esi*4 + 0x44], eax
mov bh, bh
cmp eax, ebp
jge 0x10051086
mov dword [esp + esi*4 + 0x44], ebp
mov dl, dl
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + esi*4 + 0x6c], edx
mov dh, dh
mov eax, 0xff
cmp edx, eax
jle 0x100510a5
mov dword [esp + esi*4 + 0x6c], eax
test eax, eax
push 0x10165378
push edi
call fcn.101020d0
add esp, 8
mov edi, eax
mov eax, eax
cmp edi, ebp
je 0x100510c0
add edi, 1
push ebx
pop ebx
add esi, 1
test esi, esi
cmp edi, ebp
jne 0x10050ff2
jmp 0x10051264
mov dword [esp + 0x24], edi
push ecx
pop ecx
cmp edi, ebp
je 0x10051268
jmp 0x100510e4
xor ebp, ebp
cmp esi, 0xa
jge 0x10051264
xor eax, eax
mov dword [esp + 0x1c], eax
test dl, dl
mov dword [esp + 0x18], eax
mov ch, ch
mov dh, dh
test ch, ch
mov byte [esp + 0x134], 0x25
mov byte [esp + 0x135], 0x78
mov byte [esp + 0x136], 0x2d
mov byte [esp + 0x137], 0x25
mov byte [esp + 0x138], 0x78
mov byte [esp + 0x139], al
mov ebx, ebx
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x13c]
push edx
push eax
call fcn.10104175
add esp, 0x10
mov bl, bl
movzx edi, byte [esp + 0x1a]
test ah, ah
movzx ebx, byte [esp + 0x19]
test bl, bl
mov ecx, dword [esp + 0x18]
and ecx, 0xff
test bl, bl
movzx ebp, byte [esp + 0x1e]
mov al, al
movzx edx, byte [esp + 0x1d]
mov dword [esp + 0x20], edx
test ecx, ecx
mov edx, dword [esp + 0x1c]
and edx, 0xff
mov esi, esi
mov eax, ebp
sub eax, edi
mov dword [esp + esi*4 + 0xe4], eax
mov edi, edi
test eax, eax
jge 0x100511a7
mov dword [esp + esi*4 + 0xe4], 0
test ch, ch
add edi, ebp
mov dword [esp + esi*4 + 0x10c], edi
test ch, ch
cmp edi, 0xff
jle 0x100511c7
mov dword [esp + esi*4 + 0x10c], 0xff
mov ecx, ecx
mov edi, dword [esp + 0x20]
mov eax, edi
sub eax, ebx
mov dword [esp + esi*4 + 0xbc], eax
push eax
pop eax
xor ebp, ebp
cmp eax, ebp
jge 0x100511e7
mov dword [esp + esi*4 + 0xbc], ebp
push eax
pop eax
add ebx, edi
mov dword [esp + esi*4 + 0x94], ebx
test ch, ch
mov edi, 0xff
cmp ebx, edi
jle 0x10051207
mov dword [esp + esi*4 + 0x94], edi
test eax, 0xbe
mov eax, edx
sub eax, ecx
mov dword [esp + esi*4 + 0x6c], eax
mov bl, bl
cmp eax, ebp
jge 0x1005121b
mov dword [esp + esi*4 + 0x6c], ebp
mov cl, cl
add ecx, edx
mov dword [esp + esi*4 + 0x44], ecx
mov edi, edi
cmp ecx, edi
jle 0x1005122d
mov dword [esp + esi*4 + 0x44], edi
mov edx, edx
mov eax, dword [esp + 0x24]
push 0x10165378
push eax
call fcn.101020d0
add esp, 8
mov dword [esp + 0x24], eax
test eax, 0x6a8e
cmp eax, ebp
je 0x10051255
add eax, 1
mov dword [esp + 0x24], eax
push ecx
pop ecx
add esi, 1
test ch, ch
cmp eax, ebp
jne 0x100510e2
xor ebp, ebp
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x2c]
mov ecx, dword [esi + 4]
imul ecx, dword [esi + 8]
push ecx
call fcn.1010136f
mov ecx, dword [esp + 0x34]
add esp, 4
mov dword [ecx], eax
test eax, 0x7e90
mov eax, dword [ecx]
cmp eax, ebp
jne 0x100512a3
mov edx, dword [esp + 0x3c]
push edx
call fcn.10101432
add esp, 4
test cl, cl
xor eax, eax
jmp 0x100516a4
cmp dword [esp + 0x34], ebp
je 0x100512c3
mov ecx, dword [esi + 4]
imul ecx, dword [esi + 8]
push ecx
push 1
push eax
call fcn.10102a00
add esp, 0xc
test eax, 0x4c83
jmp 0x100512da
mov edx, dword [esi + 4]
imul edx, dword [esi + 8]
push edx
push ebp
push eax
call fcn.10102a00
add esp, 0xc
test eax, 0x7e9c
test al, al
test cl, cl
cmp dword [esi + 8], ebp
jle 0x10051690
mov eax, dword [esp + 0x3c]
add eax, 1
mov dword [esp + 0x134], eax
test cl, cl
mov ecx, dword [esp + 0x2c]
xor edi, edi
cmp dword [ecx + 4], edi
jle 0x10051672
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x38], 0
je 0x10051431
push ebx
pop ebx
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jle 0x1005165b
lea ebx, [ebx]
mov bh, bh
cmp dword [esp + 0x34], 0
jne 0x1005134f
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x30]
imul eax, ebp
add eax, dword [edx]
cmp byte [eax + edi], 1
jmp 0x10051363
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x30]
imul edx, ebp
add edx, dword [eax]
cmp byte [edx + edi], 0
je 0x1005165b
movzx edx, byte [ebx + 1]
test eax, eax
movzx esi, byte [ebx]
test ah, ah
mov eax, dword [ebx - 1]
and eax, 0xff
mov dl, dl
cmp dword [esp + 0x34], 0
jne 0x100513d5
cmp edx, dword [esp + ecx*4 + 0xe4]
jl 0x1005141b
cmp edx, dword [esp + ecx*4 + 0x10c]
jg 0x1005141b
cmp esi, dword [esp + ecx*4 + 0xbc]
jl 0x1005141b
cmp esi, dword [esp + ecx*4 + 0x94]
jg 0x1005141b
cmp eax, dword [esp + ecx*4 + 0x6c]
jl 0x1005141b
cmp eax, dword [esp + ecx*4 + 0x44]
jg 0x1005141b
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x30]
imul eax, ebp
add eax, dword [edx]
mov byte [eax + edi], 1
push ebx
pop ebx
jmp 0x1005141b
cmp edx, dword [esp + ecx*4 + 0xe4]
jl 0x1005141b
cmp edx, dword [esp + ecx*4 + 0x10c]
jg 0x1005141b
cmp esi, dword [esp + ecx*4 + 0xbc]
jl 0x1005141b
cmp esi, dword [esp + ecx*4 + 0x94]
jg 0x1005141b
cmp eax, dword [esp + ecx*4 + 0x6c]
jl 0x1005141b
cmp eax, dword [esp + ecx*4 + 0x44]
jg 0x1005141b
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x30]
imul edx, ebp
add edx, dword [eax]
mov byte [edx + edi], 0
mov ah, ah
mov ebx, dword [esp + 0x24]
add ecx, 1
cmp ecx, dword [esp + 0x20]
jl 0x10051330
jmp 0x1005165b
cmp dword [esp + 0x40], 0
je 0x10051527
test eax, 0x754d
xor esi, esi
cmp dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
jle 0x1005165b
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
lea ecx, [ecx]
mov ebx, ebx
test edx, edx
test edx, edx
jne 0x10051476
mov edx, dword [eax + 4]
imul edx, ebp
add edx, dword [ecx]
cmp byte [edx + edi], 1
jmp 0x10051482
mov eax, dword [eax + 4]
imul eax, ebp
add eax, dword [ecx]
cmp byte [eax + edi], 0
je 0x1005165b
movzx edx, byte [ebx + 1]
test bl, bl
movzx ecx, byte [ebx]
mov bh, bh
mov eax, dword [ebx - 1]
and eax, 0xff
test ebx, ebx
add ecx, eax
add ecx, edx
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
push ecx
pop ecx
mov edx, dword [esp + 0x34]
test edx, edx
jne 0x100514e1
cmp eax, dword [esp + esi*4 + 0x44]
jl 0x10051509
cmp eax, dword [esp + esi*4 + 0x6c]
jg 0x10051509
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 4]
mov ecx, dword [esp + 0x30]
imul esi, ebp
add esi, dword [ecx]
mov byte [esi + edi], 1
test esi, esi
mov esi, dword [esp + 0x24]
jmp 0x10051511
cmp eax, dword [esp + esi*4 + 0x44]
jl 0x10051509
cmp eax, dword [esp + esi*4 + 0x6c]
jg 0x10051509
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 4]
mov ecx, dword [esp + 0x30]
imul esi, ebp
add esi, dword [ecx]
mov byte [esi + edi], 0
mov esi, esi
mov esi, dword [esp + 0x24]
jmp 0x10051511
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
add esi, 1
cmp esi, dword [esp + 0x20]
mov dword [esp + 0x24], esi
jl 0x10051460
jmp 0x1005165b
mov ebx, ebx
xor esi, esi
cmp dword [esp + 0x20], esi
jle 0x1005165b
mov esi, esi
mov bh, bh
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x30]
imul edx, ebp
add edx, dword [eax]
cmp dword [esp + 0x34], 0
jne 0x10051556
cmp byte [edx + edi], 1
jmp 0x1005155a
cmp byte [edx + edi], 0
je 0x1005165b
movzx ecx, byte [ebx + 1]
test bl, bl
movzx edx, byte [ebx]
mov dh, dh
mov eax, dword [ebx - 1]
and eax, 0xff
test ch, ch
lea ebx, [esp + 0x18]
push ebx
lea ebx, [esp + 0x20]
push ebx
lea ebx, [esp + 0x30]
push ebx
push eax
push edx
push ecx
call fcn.1004e850
add esp, 0x18
test eax, eax
cmp dword [esp + 0x34], 0
mov eax, dword [esp + 0x28]
jne 0x100515fc
cmp eax, dword [esp + esi*4 + 0x6c]
jl 0x1005164a
cmp eax, dword [esp + esi*4 + 0x44]
jg 0x1005164a
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + esi*4 + 0x94]
jl 0x1005164a
cmp eax, dword [esp + esi*4 + 0xbc]
jg 0x1005164a
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + esi*4 + 0x10c]
jl 0x1005164a
cmp eax, dword [esp + esi*4 + 0xe4]
jg 0x1005164a
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x30]
imul edx, ebp
add edx, dword [eax]
mov byte [edx + edi], 1
test bh, bh
jmp 0x1005164a
cmp eax, dword [esp + esi*4 + 0x6c]
jl 0x1005164a
cmp eax, dword [esp + esi*4 + 0x44]
jg 0x1005164a
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + esi*4 + 0x94]
jl 0x1005164a
cmp eax, dword [esp + esi*4 + 0xbc]
jg 0x1005164a
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + esi*4 + 0x10c]
jl 0x1005164a
cmp eax, dword [esp + esi*4 + 0xe4]
jg 0x1005164a
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x30]
imul edx, ebp
add edx, dword [eax]
mov byte [edx + edi], 0
test dh, dh
mov ebx, dword [esp + 0x24]
add esi, 1
cmp esi, dword [esp + 0x20]
jl 0x10051535
mov ecx, dword [esp + 0x2c]
add edi, 1
add ebx, 4
cmp edi, dword [ecx + 4]
mov dword [esp + 0x24], ebx
jl 0x10051311
mov edx, dword [esp + 0x160]
mov eax, dword [esp + 0x2c]
add dword [esp + 0x134], edx
add ebp, 1
cmp ebp, dword [eax + 8]
jl 0x100512f5
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.10101432
add esp, 4
mov bh, bh
mov eax, 1
mov ecx, dword [esp + 0x150]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1010190d
add esp, 0x144
ret