Function at 0x10051ef0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x144
mov eax, dword [0x101cf40c]
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
xchg ebx, eax
xchg ebx, eax
xor ebp, ebp
mov dword [esp + 0x40], ebp
push edx
pop edx
nop
mov dl, dl
mov al, al
mov ah, ah
mov esi, esi
mov esi, esi
nop
xor esi, esi
mov dword [esp + 0x20], esi
mov ecx, ecx
mov dword [esp + 0x34], ebp
mov edi, edi
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
mov edi, edi
push 2
lea eax, [esp + 0x14]
push eax
push edi
call fcn.1011a694
add esp, 0xc
test eax, eax
je 0x10051f99
push 2
lea ecx, [esp + 0x18]
push ecx
push edi
call fcn.1011a694
add esp, 0xc
test eax, eax
jne 0x10051fa4
mov dword [esp + 0x34], ebx
mov ch, ch
add edi, 2
mov dl, dl
push 0x10183964
push edi
call fcn.101181c0
add esp, 8
test eax, eax
je 0x100521b4
mov dh, dh
cmp edi, ebp
je 0x10052462
mov ebx, 0x64
lea esp, [esp]
cmp byte [edi], 0
je 0x1005245e
cmp esi, 0xa
jge 0x1005245e
push edx
pop edx
mov dword [esp + 0x38], ebp
push ecx
pop ecx
mov dword [esp + 0x40], ebp
mov edi, edi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x134], ebp
mov dword [esp + 0x24], ebp
push ebx
pop ebx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
push edx
pop 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
xchg ebx, eax
xchg ebx, eax
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.10119fed
add esp, 0x20
xchg ebx, eax
xchg ebx, eax
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x1c]
mov dword [esp + esi*4 + 0x6c], eax
mov al, al
cmp eax, ebp
jge 0x100520e7
mov dword [esp + esi*4 + 0x6c], ebp
mov edx, edx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
add edx, ecx
mov dword [esp + esi*4 + 0x44], edx
mov dl, dl
mov eax, 0x168
cmp edx, eax
jle 0x10052106
mov dword [esp + esi*4 + 0x44], eax
xchg ebx, eax
xchg ebx, eax
mov eax, dword [esp + 0x134]
sub eax, dword [esp + 0x18]
mov dword [esp + esi*4 + 0x94], eax
mov ecx, ecx
cmp eax, ebp
jge 0x10052127
mov dword [esp + esi*4 + 0x94], ebp
xchg ebx, eax
xchg ebx, eax
mov ecx, dword [esp + 0x134]
mov edx, dword [esp + 0x18]
add edx, ecx
mov dword [esp + esi*4 + 0xbc], edx
mov edx, edx
cmp edx, ebx
jle 0x1005214a
mov dword [esp + esi*4 + 0xbc], ebx
mov dl, dl
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x28]
mov dword [esp + esi*4 + 0x10c], eax
mov eax, eax
cmp eax, ebp
jge 0x10052168
mov dword [esp + esi*4 + 0x10c], ebp
mov bl, bl
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
add edx, ecx
mov dword [esp + esi*4 + 0xe4], edx
mov ebx, ebx
cmp edx, ebx
jle 0x10052188
mov dword [esp + esi*4 + 0xe4], ebx
mov ecx, ecx
push 0x10183570
push edi
call fcn.101181c0
add esp, 8
mov edi, eax
mov ecx, ecx
cmp edi, ebp
je 0x100521a2
add edi, 1
nop
add esi, 1
push edx
pop edx
cmp edi, ebp
jne 0x10051fd0
jmp 0x1005245e
push 0x10183960
push edi
call fcn.101181c0
add esp, 8
test eax, eax
je 0x100522c7
push eax
pop eax
cmp edi, ebp
je 0x10052462
mov ebx, 0x64
lea esp, [esp]
cmp byte [edi], 0
je 0x1005245e
cmp esi, 0xa
jge 0x1005245e
mov cl, cl
mov dword [esp + 0x38], ebp
push ecx
pop ecx
mov dword [esp + 0x40], 1
push eax
pop eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], ebp
push ecx
pop ecx
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
mov bl, bl
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x13c]
push edx
push edi
call fcn.10119fed
add esp, 0x10
push eax
pop eax
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x24]
mov dword [esp + esi*4 + 0x44], eax
mov cl, cl
cmp eax, ebp
jge 0x1005227b
mov dword [esp + esi*4 + 0x44], ebp
push eax
pop eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + esi*4 + 0x6c], edx
mov bl, bl
mov eax, 0xff
cmp edx, eax
jle 0x1005229a
mov dword [esp + esi*4 + 0x6c], eax
mov ah, ah
push 0x10183570
push edi
call fcn.101181c0
add esp, 8
mov edi, eax
mov edi, edi
cmp edi, ebp
je 0x100522b5
add edi, 1
mov ecx, ecx
add esi, 1
mov dl, dl
cmp edi, ebp
jne 0x100521e0
jmp 0x1005245e
mov dword [esp + 0x24], edi
mov ecx, ecx
cmp edi, ebp
je 0x10052462
jmp 0x100522d9
xor ebp, ebp
mov eax, dword [esp + 0x24]
cmp byte [eax], 0
je 0x1005245e
cmp esi, 0xa
jge 0x1005245e
xor eax, eax
mov dword [esp + 0x1c], eax
mov ecx, ecx
mov dword [esp + 0x18], eax
mov edi, edi
mov dl, dl
mov ebx, ebx
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 edx, edx
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.10119fed
add esp, 0x10
push edx
pop edx
movzx edi, byte [esp + 0x1a]
nop
movzx ebx, byte [esp + 0x19]
mov bh, bh
mov ecx, dword [esp + 0x18]
and ecx, 0xff
mov eax, eax
movzx ebp, byte [esp + 0x1e]
push ecx
pop ecx
movzx edx, byte [esp + 0x1d]
mov dword [esp + 0x20], edx
xchg ebx, eax
xchg ebx, eax
mov edx, dword [esp + 0x1c]
and edx, 0xff
mov bl, bl
mov eax, ebp
sub eax, edi
mov dword [esp + esi*4 + 0xe4], eax
mov ecx, ecx
test eax, eax
jge 0x100523a8
mov dword [esp + esi*4 + 0xe4], 0
push edx
pop edx
add edi, ebp
mov dword [esp + esi*4 + 0x10c], edi
nop
cmp edi, 0xff
jle 0x100523c7
mov dword [esp + esi*4 + 0x10c], 0xff
mov ch, ch
mov edi, dword [esp + 0x20]
mov eax, edi
sub eax, ebx
mov dword [esp + esi*4 + 0xbc], eax
mov bl, bl
xor ebp, ebp
cmp eax, ebp
jge 0x100523e7
mov dword [esp + esi*4 + 0xbc], ebp
mov cl, cl
add ebx, edi
mov dword [esp + esi*4 + 0x94], ebx
mov ecx, ecx
mov edi, 0xff
cmp ebx, edi
jle 0x10052404
mov dword [esp + esi*4 + 0x94], edi
mov bh, bh
mov eax, edx
sub eax, ecx
mov dword [esp + esi*4 + 0x6c], eax
mov cl, cl
cmp eax, ebp
jge 0x10052418
mov dword [esp + esi*4 + 0x6c], ebp
mov ecx, ecx
add ecx, edx
mov dword [esp + esi*4 + 0x44], ecx
mov edi, edi
cmp ecx, edi
jle 0x1005242a
mov dword [esp + esi*4 + 0x44], edi
mov cl, cl
mov eax, dword [esp + 0x24]
push 0x10183570
push eax
call fcn.101181c0
add esp, 8
mov dword [esp + 0x24], eax
mov bl, bl
cmp eax, ebp
je 0x1005244f
add eax, 1
mov dword [esp + 0x24], eax
mov ch, ch
add esi, 1
push edx
pop edx
cmp eax, ebp
jne 0x100522d7
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.1011741c
mov ecx, dword [esp + 0x34]
add esp, 4
mov dword [ecx], eax
mov ch, ch
mov eax, dword [ecx]
cmp eax, ebp
jne 0x1005249a
mov edx, dword [esp + 0x3c]
push edx
call fcn.101174df
add esp, 4
push edx
pop edx
xor eax, eax
jmp 0x1005288b
cmp dword [esp + 0x34], ebp
je 0x100524b7
mov ecx, dword [esi + 4]
imul ecx, dword [esi + 8]
push ecx
push 1
push eax
call fcn.101184b0
add esp, 0xc
mov ch, ch
jmp 0x100524cb
mov edx, dword [esi + 4]
imul edx, dword [esi + 8]
push edx
push ebp
push eax
call fcn.101184b0
add esp, 0xc
push eax
pop eax
nop
mov edi, edi
cmp dword [esi + 8], ebp
jle 0x10052877
mov eax, dword [esp + 0x3c]
add eax, 1
mov dword [esp + 0x134], eax
push eax
pop eax
mov ecx, dword [esp + 0x2c]
xor edi, edi
cmp dword [ecx + 4], edi
jle 0x10052859
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x38], 0
je 0x1005261d
mov dh, dh
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jle 0x10052842
lea ebx, [ebx]
mov cl, cl
cmp dword [esp + 0x34], 0
jne 0x1005253f
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 0x10052553
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 0x10052842
movzx edx, byte [ebx + 1]
mov esi, esi
movzx esi, byte [ebx]
mov edi, edi
mov eax, dword [ebx - 1]
and eax, 0xff
push ebx
pop ebx
cmp dword [esp + 0x34], 0
jne 0x100525c1
cmp edx, dword [esp + ecx*4 + 0xe4]
jl 0x10052607
cmp edx, dword [esp + ecx*4 + 0x10c]
jg 0x10052607
cmp esi, dword [esp + ecx*4 + 0xbc]
jl 0x10052607
cmp esi, dword [esp + ecx*4 + 0x94]
jg 0x10052607
cmp eax, dword [esp + ecx*4 + 0x6c]
jl 0x10052607
cmp eax, dword [esp + ecx*4 + 0x44]
jg 0x10052607
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 edi, edi
jmp 0x10052607
cmp edx, dword [esp + ecx*4 + 0xe4]
jl 0x10052607
cmp edx, dword [esp + ecx*4 + 0x10c]
jg 0x10052607
cmp esi, dword [esp + ecx*4 + 0xbc]
jl 0x10052607
cmp esi, dword [esp + ecx*4 + 0x94]
jg 0x10052607
cmp eax, dword [esp + ecx*4 + 0x6c]
jl 0x10052607
cmp eax, dword [esp + ecx*4 + 0x44]
jg 0x10052607
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
xchg ebx, eax
xchg ebx, eax
mov ebx, dword [esp + 0x24]
add ecx, 1
cmp ecx, dword [esp + 0x20]
jl 0x10052520
jmp 0x10052842
cmp dword [esp + 0x40], 0
je 0x1005270d
mov esi, esi
xor esi, esi
cmp dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
jle 0x10052842
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
push eax
pop eax
push ecx
pop ecx
test edx, edx
jne 0x1005265c
mov edx, dword [eax + 8]
imul edx, edi
add edx, dword [ecx]
cmp byte [edx + ebp], 1
jmp 0x10052668
mov eax, dword [eax + 8]
imul eax, edi
add eax, dword [ecx]
cmp byte [eax + ebp], 0
je 0x10052842
movzx edx, byte [ebx + 1]
mov dl, dl
movzx ecx, byte [ebx]
mov cl, cl
mov eax, dword [ebx - 1]
and eax, 0xff
mov ah, ah
add ecx, eax
add ecx, edx
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov bl, bl
mov edx, dword [esp + 0x34]
test edx, edx
jne 0x100526c7
cmp eax, dword [esp + esi*4 + 0x44]
jl 0x100526ef
cmp eax, dword [esp + esi*4 + 0x6c]
jg 0x100526ef
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
xchg ebx, eax
xchg ebx, eax
mov esi, dword [esp + 0x24]
jmp 0x100526f7
cmp eax, dword [esp + esi*4 + 0x44]
jl 0x100526ef
cmp eax, dword [esp + esi*4 + 0x6c]
jg 0x100526ef
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 ebp, ebp
mov esi, dword [esp + 0x24]
jmp 0x100526f7
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
add esi, 1
cmp esi, dword [esp + 0x20]
mov dword [esp + 0x24], esi
jl 0x10052646
jmp 0x10052842
mov ch, ch
xor esi, esi
cmp dword [esp + 0x20], esi
jle 0x10052842
jmp 0x10052720
mov ebx, ebx
mov ebx, ebx
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 0x10052741
cmp byte [edx + ebp], 1
jmp 0x10052745
cmp byte [edx + ebp], 0
je 0x10052842
movzx ecx, byte [ebx + 1]
mov edi, edi
movzx edx, byte [ebx]
xchg ebx, eax
xchg ebx, eax
mov eax, dword [ebx - 1]
and eax, 0xff
mov 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.100506e0
add esp, 0x18
xchg ebx, eax
xchg ebx, eax
cmp dword [esp + 0x34], 0
mov eax, dword [esp + 0x28]
jne 0x100527e3
cmp eax, dword [esp + esi*4 + 0x6c]
jl 0x10052831
cmp eax, dword [esp + esi*4 + 0x44]
jg 0x10052831
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + esi*4 + 0x94]
jl 0x10052831
cmp eax, dword [esp + esi*4 + 0xbc]
jg 0x10052831
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + esi*4 + 0x10c]
jl 0x10052831
cmp eax, dword [esp + esi*4 + 0xe4]
jg 0x10052831
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
mov dl, dl
jmp 0x10052831
cmp eax, dword [esp + esi*4 + 0x6c]
jl 0x10052831
cmp eax, dword [esp + esi*4 + 0x44]
jg 0x10052831
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + esi*4 + 0x94]
jl 0x10052831
cmp eax, dword [esp + esi*4 + 0xbc]
jg 0x10052831
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + esi*4 + 0x10c]
jl 0x10052831
cmp eax, dword [esp + esi*4 + 0xe4]
jg 0x10052831
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
push edx
pop edx
mov ebx, dword [esp + 0x24]
add esi, 1
cmp esi, dword [esp + 0x20]
jl 0x10052720
mov ecx, dword [esp + 0x2c]
add edi, 1
add ebx, 4
cmp edi, dword [ecx + 4]
mov dword [esp + 0x24], ebx
jl 0x10052501
mov edx, dword [esp + 0x160]
mov eax, dword [esp + 0x2c]
add dword [esp + 0x134], edx
add ebp, 1
cmp ebp, dword [eax + 8]
jl 0x100524e5
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.101174df
add esp, 4
mov esi, esi
mov eax, 1
mov ecx, dword [esp + 0x150]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.101179ba
add esp, 0x144
ret