Function at 0x10050080
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 ah, ah
xor ebp, ebp
mov dword [esp + 0x40], ebp
test edx, edx
mov bh, bh
mov al, al
test bl, bl
mov ah, ah
test eax, 0x7238
mov ebx, ebx
xchg ebx, eax
xchg ebx, eax
xor esi, esi
mov dword [esp + 0x20], esi
push ebx
pop ebx
mov dword [esp + 0x34], ebp
mov ebp, ebp
mov al, 0x40
mov byte [esp + 0x10], 0x62
mov byte [esp + 0x11], al
mov byte [esp + 0x12], 0
mov esi, esi
mov byte [esp + 0x14], 0x42
mov byte [esp + 0x15], al
mov byte [esp + 0x16], 0
test al, al
push 2
lea eax, [esp + 0x14]
push eax
push edi
call fcn.101048a4
add esp, 0xc
test eax, eax
je 0x1005012e
push 2
lea ecx, [esp + 0x18]
push ecx
push edi
call fcn.101048a4
add esp, 0xc
test eax, eax
jne 0x10050139
mov dword [esp + 0x34], ebx
mov ch, ch
add edi, 2
push ecx
pop ecx
push 0x1016571c
push edi
call fcn.101020d0
add esp, 8
test eax, eax
je 0x1005034b
push ebx
pop ebx
cmp edi, ebp
je 0x10050600
mov ebx, 0x64
mov edi, edi
cmp byte [edi], 0
je 0x100505fc
cmp esi, 0xa
jge 0x100505fc
mov al, al
mov dword [esp + 0x38], ebp
push eax
pop eax
mov dword [esp + 0x40], ebp
test esi, esi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x134], ebp
mov dword [esp + 0x24], ebp
mov ebp, ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
test edx, edx
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 dl, dl
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
mov al, al
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x1c]
mov dword [esp + esi*4 + 0x6c], eax
push edx
pop edx
cmp eax, ebp
jge 0x10050277
mov dword [esp + esi*4 + 0x6c], ebp
mov ecx, ecx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
add edx, ecx
mov dword [esp + esi*4 + 0x44], edx
mov ah, ah
mov eax, 0x168
cmp edx, eax
jle 0x10050296
mov dword [esp + esi*4 + 0x44], eax
push edx
pop edx
mov eax, dword [esp + 0x134]
sub eax, dword [esp + 0x18]
mov dword [esp + esi*4 + 0x94], eax
mov ecx, ecx
cmp eax, ebp
jge 0x100502ba
mov dword [esp + esi*4 + 0x94], ebp
test eax, 0x160e
mov ecx, dword [esp + 0x134]
mov edx, dword [esp + 0x18]
add edx, ecx
mov dword [esp + esi*4 + 0xbc], edx
test ch, ch
cmp edx, ebx
jle 0x100502dd
mov dword [esp + esi*4 + 0xbc], ebx
mov ebp, ebp
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x28]
mov dword [esp + esi*4 + 0x10c], eax
test bl, bl
cmp eax, ebp
jge 0x100502fb
mov dword [esp + esi*4 + 0x10c], ebp
mov ebp, ebp
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
add edx, ecx
mov dword [esp + esi*4 + 0xe4], edx
mov ah, ah
cmp edx, ebx
jle 0x1005031b
mov dword [esp + esi*4 + 0xe4], ebx
test bl, bl
push 0x10165378
push edi
call fcn.101020d0
add esp, 8
mov edi, eax
test eax, 0x312a
cmp edi, ebp
je 0x10050339
add edi, 1
test ch, ch
add esi, 1
test al, al
cmp edi, ebp
jne 0x10050160
jmp 0x100505fc
push 0x10165718
push edi
call fcn.101020d0
add esp, 8
test eax, eax
je 0x10050459
test edi, edi
cmp edi, ebp
je 0x10050600
mov ebx, 0x64
cmp byte [edi], 0
je 0x100505fc
cmp esi, 0xa
jge 0x100505fc
test eax, 0x4e7c
mov dword [esp + 0x38], ebp
mov edx, edx
mov dword [esp + 0x40], 1
push edx
pop edx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], ebp
test edi, edi
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
push ecx
pop ecx
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 edi, edi
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x24]
mov dword [esp + esi*4 + 0x44], eax
nop
cmp eax, ebp
jge 0x1005040d
mov dword [esp + esi*4 + 0x44], ebp
mov eax, eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + esi*4 + 0x6c], edx
mov ebp, ebp
mov eax, 0xff
cmp edx, eax
jle 0x1005042c
mov dword [esp + esi*4 + 0x6c], eax
mov esi, esi
push 0x10165378
push edi
call fcn.101020d0
add esp, 8
mov edi, eax
push eax
pop eax
cmp edi, ebp
je 0x10050447
add edi, 1
mov bl, bl
add esi, 1
test esi, esi
cmp edi, ebp
jne 0x10050370
jmp 0x100505fc
mov dword [esp + 0x24], edi
test ecx, ecx
cmp edi, ebp
je 0x10050600
jmp 0x10050472
xor ebp, ebp
mov eax, dword [esp + 0x24]
cmp byte [eax], 0
je 0x100505fc
cmp esi, 0xa
jge 0x100505fc
xor eax, eax
mov dword [esp + 0x1c], eax
test bh, bh
mov dword [esp + 0x18], eax
test ecx, ecx
test dl, dl
test cl, cl
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 bl, bl
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x13c]
push eax
push ecx
call fcn.10104175
add esp, 0x10
test bh, bh
movzx edi, byte [esp + 0x1a]
test bl, bl
movzx ebx, byte [esp + 0x19]
push ecx
pop ecx
mov ecx, dword [esp + 0x18]
and ecx, 0xff
test dh, dh
movzx ebp, byte [esp + 0x1e]
mov ch, ch
movzx edx, byte [esp + 0x1d]
mov dword [esp + 0x20], edx
mov edi, edi
mov edx, dword [esp + 0x1c]
and edx, 0xff
test edx, edx
mov eax, ebp
sub eax, edi
mov dword [esp + esi*4 + 0xe4], eax
test edx, edx
test eax, eax
jge 0x10050542
mov dword [esp + esi*4 + 0xe4], 0
mov edx, edx
add edi, ebp
mov dword [esp + esi*4 + 0x10c], edi
test dl, dl
cmp edi, 0xff
jle 0x10050562
mov dword [esp + esi*4 + 0x10c], 0xff
test cl, cl
mov edi, dword [esp + 0x20]
mov eax, edi
sub eax, ebx
mov dword [esp + esi*4 + 0xbc], eax
mov al, al
xor ebp, ebp
cmp eax, ebp
jge 0x10050582
mov dword [esp + esi*4 + 0xbc], ebp
mov edx, edx
add ebx, edi
mov dword [esp + esi*4 + 0x94], ebx
mov ch, ch
mov edi, 0xff
cmp ebx, edi
jle 0x1005059f
mov dword [esp + esi*4 + 0x94], edi
test ecx, ecx
mov eax, edx
sub eax, ecx
mov dword [esp + esi*4 + 0x6c], eax
test esi, esi
cmp eax, ebp
jge 0x100505b3
mov dword [esp + esi*4 + 0x6c], ebp
mov ecx, ecx
add ecx, edx
mov dword [esp + esi*4 + 0x44], ecx
xchg ebx, eax
xchg ebx, eax
cmp ecx, edi
jle 0x100505c5
mov dword [esp + esi*4 + 0x44], edi
mov cl, cl
mov eax, dword [esp + 0x24]
push 0x10165378
push eax
call fcn.101020d0
add esp, 8
mov dword [esp + 0x24], eax
test dh, dh
cmp eax, ebp
je 0x100505ea
add eax, 1
mov dword [esp + 0x24], eax
mov bl, bl
add esi, 1
test eax, 0x1b75
cmp eax, ebp
jne 0x10050470
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
nop
mov eax, dword [ecx]
cmp eax, ebp
jne 0x10050637
mov edx, dword [esp + 0x3c]
push edx
call fcn.10101432
add esp, 4
push ecx
pop ecx
xor eax, eax
jmp 0x10050a32
cmp dword [esp + 0x34], ebp
je 0x10050654
mov ecx, dword [esi + 4]
imul ecx, dword [esi + 8]
push ecx
push 1
push eax
call fcn.10102a00
add esp, 0xc
mov al, al
jmp 0x10050668
mov edx, dword [esi + 4]
imul edx, dword [esi + 8]
push edx
push ebp
push eax
call fcn.10102a00
add esp, 0xc
mov esi, esi
mov ecx, ecx
push ebx
pop ebx
cmp dword [esi + 8], ebp
jle 0x10050a1e
mov eax, dword [esp + 0x3c]
add eax, 1
mov dword [esp + 0x134], eax
push ebx
pop ebx
mov ecx, dword [esp + 0x2c]
xor edi, edi
cmp dword [ecx + 4], edi
jle 0x10050a00
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x24], ebx
nop
cmp dword [esp + 0x38], 0
je 0x100507c0
push ebx
pop ebx
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jle 0x100509e9
lea esp, [esp]
mov edx, edx
cmp dword [esp + 0x34], 0
jne 0x100506df
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 8]
mov edx, dword [esp + 0x30]
imul eax, edi
add eax, dword [edx]
cmp byte [eax + ebp], 1
jmp 0x100506f3
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x30]
imul edx, edi
add edx, dword [eax]
cmp byte [edx + ebp], 0
je 0x100509e9
movzx edx, byte [ebx + 1]
test ch, ch
movzx esi, byte [ebx]
test eax, 0x2ce8
mov eax, dword [ebx - 1]
and eax, 0xff
mov bh, bh
cmp dword [esp + 0x34], 0
jne 0x10050764
cmp edx, dword [esp + ecx*4 + 0xe4]
jl 0x100507aa
cmp edx, dword [esp + ecx*4 + 0x10c]
jg 0x100507aa
cmp esi, dword [esp + ecx*4 + 0xbc]
jl 0x100507aa
cmp esi, dword [esp + ecx*4 + 0x94]
jg 0x100507aa
cmp eax, dword [esp + ecx*4 + 0x6c]
jl 0x100507aa
cmp eax, dword [esp + ecx*4 + 0x44]
jg 0x100507aa
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 8]
mov edx, dword [esp + 0x30]
imul eax, edi
add eax, dword [edx]
mov byte [eax + ebp], 1
mov ebp, ebp
jmp 0x100507aa
cmp edx, dword [esp + ecx*4 + 0xe4]
jl 0x100507aa
cmp edx, dword [esp + ecx*4 + 0x10c]
jg 0x100507aa
cmp esi, dword [esp + ecx*4 + 0xbc]
jl 0x100507aa
cmp esi, dword [esp + ecx*4 + 0x94]
jg 0x100507aa
cmp eax, dword [esp + ecx*4 + 0x6c]
jl 0x100507aa
cmp eax, dword [esp + ecx*4 + 0x44]
jg 0x100507aa
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x30]
imul edx, edi
add edx, dword [eax]
mov byte [edx + ebp], 0
test ah, ah
mov ebx, dword [esp + 0x24]
add ecx, 1
cmp ecx, dword [esp + 0x20]
jl 0x100506c0
jmp 0x100509e9
cmp dword [esp + 0x40], 0
je 0x100508b9
mov bh, bh
xor esi, esi
cmp dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
jle 0x100509e9
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
lea esp, [esp]
test eax, 0x7213
mov edi, edi
test edx, edx
jne 0x10050809
mov edx, dword [eax + 8]
imul edx, edi
add edx, dword [ecx]
cmp byte [edx + ebp], 1
jmp 0x10050815
mov eax, dword [eax + 8]
imul eax, edi
add eax, dword [ecx]
cmp byte [eax + ebp], 0
je 0x100509e9
movzx edx, byte [ebx + 1]
nop
movzx ecx, byte [ebx]
test edx, edx
mov eax, dword [ebx - 1]
and eax, 0xff
mov ch, ch
add ecx, eax
add ecx, edx
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
test bl, bl
mov edx, dword [esp + 0x34]
test edx, edx
jne 0x10050873
cmp eax, dword [esp + esi*4 + 0x44]
jl 0x1005089b
cmp eax, dword [esp + esi*4 + 0x6c]
jg 0x1005089b
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 8]
mov ecx, dword [esp + 0x30]
imul esi, edi
add esi, dword [ecx]
mov byte [esi + ebp], 1
mov esi, esi
mov esi, dword [esp + 0x24]
jmp 0x100508a3
cmp eax, dword [esp + esi*4 + 0x44]
jl 0x1005089b
cmp eax, dword [esp + esi*4 + 0x6c]
jg 0x1005089b
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 8]
mov ecx, dword [esp + 0x30]
imul esi, edi
add esi, dword [ecx]
mov byte [esi + ebp], 0
mov edi, edi
mov esi, dword [esp + 0x24]
jmp 0x100508a3
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
add esi, 1
cmp esi, dword [esp + 0x20]
mov dword [esp + 0x24], esi
jl 0x100507f0
jmp 0x100509e9
mov edi, edi
xor esi, esi
cmp dword [esp + 0x20], esi
jle 0x100509e9
mov ah, ah
mov ah, ah
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 8]
mov eax, dword [esp + 0x30]
imul edx, edi
add edx, dword [eax]
cmp dword [esp + 0x34], 0
jne 0x100508e8
cmp byte [edx + ebp], 1
jmp 0x100508ec
cmp byte [edx + ebp], 0
je 0x100509e9
movzx ecx, byte [ebx + 1]
mov esi, esi
movzx edx, byte [ebx]
test ebx, ebx
mov eax, dword [ebx - 1]
and eax, 0xff
test esi, esi
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
push edx
pop edx
cmp dword [esp + 0x34], 0
mov eax, dword [esp + 0x28]
jne 0x1005098a
cmp eax, dword [esp + esi*4 + 0x6c]
jl 0x100509d8
cmp eax, dword [esp + esi*4 + 0x44]
jg 0x100509d8
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + esi*4 + 0x94]
jl 0x100509d8
cmp eax, dword [esp + esi*4 + 0xbc]
jg 0x100509d8
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + esi*4 + 0x10c]
jl 0x100509d8
cmp eax, dword [esp + esi*4 + 0xe4]
jg 0x100509d8
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 8]
mov eax, dword [esp + 0x30]
imul edx, edi
add edx, dword [eax]
mov byte [edx + ebp], 1
push eax
pop eax
jmp 0x100509d8
cmp eax, dword [esp + esi*4 + 0x6c]
jl 0x100509d8
cmp eax, dword [esp + esi*4 + 0x44]
jg 0x100509d8
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + esi*4 + 0x94]
jl 0x100509d8
cmp eax, dword [esp + esi*4 + 0xbc]
jg 0x100509d8
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + esi*4 + 0x10c]
jl 0x100509d8
cmp eax, dword [esp + esi*4 + 0xe4]
jg 0x100509d8
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 8]
mov eax, dword [esp + 0x30]
imul edx, edi
add edx, dword [eax]
mov byte [edx + ebp], 0
mov cl, cl
mov ebx, dword [esp + 0x24]
add esi, 1
cmp esi, dword [esp + 0x20]
jl 0x100508c7
mov ecx, dword [esp + 0x2c]
add edi, 1
add ebx, 4
cmp edi, dword [ecx + 4]
mov dword [esp + 0x24], ebx
jl 0x100506a0
mov edx, dword [esp + 0x160]
mov eax, dword [esp + 0x2c]
add dword [esp + 0x134], edx
add ebp, 1
cmp ebp, dword [eax + 8]
jl 0x10050683
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.10101432
add esp, 4
mov ch, ch
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