Function at 0x10054180
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x144
mov eax, dword [0x101ce2ac]
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 ecx, ecx
xor ebp, ebp
mov dword [esp + 0x40], ebp
mov ebx, ebx
mov esi, esi
test edi, edi
test eax, 0x295a
test cl, cl
mov ch, ch
test eax, 0x1398
mov bl, bl
xor esi, esi
mov dword [esp + 0x20], esi
mov esi, esi
mov dword [esp + 0x34], ebp
test eax, 0x3c09
mov al, 0x40
mov byte [esp + 0x10], 0x62
mov byte [esp + 0x11], al
mov byte [esp + 0x12], 0
test ebx, ebx
mov byte [esp + 0x14], 0x42
mov byte [esp + 0x15], al
mov byte [esp + 0x16], 0
mov ah, ah
push 2
lea eax, [esp + 0x14]
push eax
push edi
call fcn.10119c94
add esp, 0xc
test eax, eax
je 0x10054234
push 2
lea ecx, [esp + 0x18]
push ecx
push edi
call fcn.10119c94
add esp, 0xc
test eax, eax
jne 0x1005423f
mov dword [esp + 0x34], ebx
mov ebp, ebp
add edi, 2
mov bl, bl
push 0x101828fc
push edi
call fcn.101174c0
add esp, 8
test eax, eax
je 0x1005444b
test al, al
cmp edi, ebp
je 0x10054705
mov ebx, 0x64
cmp byte [edi], 0
je 0x10054701
cmp esi, 0xa
jge 0x10054701
push ecx
pop ecx
mov dword [esp + 0x38], ebp
test eax, 0x23e3
mov dword [esp + 0x40], ebp
test eax, eax
mov dword [esp + 0x20], ebp
mov dword [esp + 0x134], ebp
mov dword [esp + 0x24], ebp
nop
mov dword [esp + 0x28], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
test edi, edi
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
mov eax, 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.10119565
add esp, 0x20
mov al, al
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x1c]
mov dword [esp + esi*4 + 0x6c], eax
push ecx
pop ecx
cmp eax, ebp
jge 0x1005437d
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
test ecx, ecx
mov eax, 0x168
cmp edx, eax
jle 0x1005439c
mov dword [esp + esi*4 + 0x44], eax
mov esi, esi
mov eax, dword [esp + 0x134]
sub eax, dword [esp + 0x18]
mov dword [esp + esi*4 + 0x94], eax
test ebx, ebx
cmp eax, ebp
jge 0x100543bd
mov dword [esp + esi*4 + 0x94], ebp
test ebx, ebx
mov ecx, dword [esp + 0x134]
mov edx, dword [esp + 0x18]
add edx, ecx
mov dword [esp + esi*4 + 0xbc], edx
mov ah, ah
cmp edx, ebx
jle 0x100543e0
mov dword [esp + esi*4 + 0xbc], ebx
push ecx
pop ecx
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x28]
mov dword [esp + esi*4 + 0x10c], eax
mov bl, bl
cmp eax, ebp
jge 0x100543fe
mov dword [esp + esi*4 + 0x10c], ebp
mov bh, bh
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
add edx, ecx
mov dword [esp + esi*4 + 0xe4], edx
mov ecx, ecx
cmp edx, ebx
jle 0x1005441e
mov dword [esp + esi*4 + 0xe4], ebx
mov dh, dh
push 0x10182558
push edi
call fcn.101174c0
add esp, 8
mov edi, eax
push ebx
pop ebx
cmp edi, ebp
je 0x10054439
add edi, 1
push ecx
pop ecx
add esi, 1
mov cl, cl
cmp edi, ebp
jne 0x10054264
jmp 0x10054701
push 0x101828f8
push edi
call fcn.101174c0
add esp, 8
test eax, eax
je 0x1005455d
mov ah, ah
cmp edi, ebp
je 0x10054705
mov ebx, 0x64
cmp byte [edi], 0
je 0x10054701
cmp esi, 0xa
jge 0x10054701
test ecx, ecx
mov dword [esp + 0x38], ebp
test eax, 0x2dd8
mov dword [esp + 0x40], 1
test dh, dh
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 eax, 0x869
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x13c]
push edx
push edi
call fcn.10119565
add esp, 0x10
mov bl, bl
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x24]
mov dword [esp + esi*4 + 0x44], eax
xchg ebx, eax
xchg ebx, eax
cmp eax, ebp
jge 0x10054511
mov dword [esp + esi*4 + 0x44], ebp
test ebx, ebx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + esi*4 + 0x6c], edx
push ecx
pop ecx
mov eax, 0xff
cmp edx, eax
jle 0x10054530
mov dword [esp + esi*4 + 0x6c], eax
mov cl, cl
push 0x10182558
push edi
call fcn.101174c0
add esp, 8
mov edi, eax
push eax
pop eax
cmp edi, ebp
je 0x1005454b
add edi, 1
test edi, edi
add esi, 1
push ebx
pop ebx
cmp edi, ebp
jne 0x10054470
jmp 0x10054701
mov dword [esp + 0x24], edi
mov edi, edi
cmp edi, ebp
je 0x10054705
jmp 0x10054572
xor ebp, ebp
mov eax, dword [esp + 0x24]
cmp byte [eax], 0
je 0x10054701
cmp esi, 0xa
jge 0x10054701
xor eax, eax
mov dword [esp + 0x1c], eax
mov cl, cl
mov dword [esp + 0x18], eax
mov edi, edi
mov bh, bh
mov bl, bl
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
test ebx, ebx
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.10119565
add esp, 0x10
mov dl, dl
movzx edi, byte [esp + 0x1a]
mov al, al
movzx ebx, byte [esp + 0x19]
test ah, ah
mov ecx, dword [esp + 0x18]
and ecx, 0xff
mov bl, bl
movzx ebp, byte [esp + 0x1e]
test bl, bl
movzx edx, byte [esp + 0x1d]
mov dword [esp + 0x20], edx
mov edx, edx
mov edx, dword [esp + 0x1c]
and edx, 0xff
mov cl, cl
mov eax, ebp
sub eax, edi
mov dword [esp + esi*4 + 0xe4], eax
mov ecx, ecx
test eax, eax
jge 0x10054642
mov dword [esp + esi*4 + 0xe4], 0
mov ebx, ebx
add edi, ebp
mov dword [esp + esi*4 + 0x10c], edi
nop
cmp edi, 0xff
jle 0x10054664
mov dword [esp + esi*4 + 0x10c], 0xff
test eax, 0x4df6
mov edi, dword [esp + 0x20]
mov eax, edi
sub eax, ebx
mov dword [esp + esi*4 + 0xbc], eax
mov dh, dh
xor ebp, ebp
cmp eax, ebp
jge 0x10054684
mov dword [esp + esi*4 + 0xbc], ebp
test edi, edi
add ebx, edi
mov dword [esp + esi*4 + 0x94], ebx
push ebx
pop ebx
mov edi, 0xff
cmp ebx, edi
jle 0x100546a4
mov dword [esp + esi*4 + 0x94], edi
test eax, 0x87f
mov eax, edx
sub eax, ecx
mov dword [esp + esi*4 + 0x6c], eax
mov ebx, ebx
cmp eax, ebp
jge 0x100546b8
mov dword [esp + esi*4 + 0x6c], ebp
mov ecx, ecx
add ecx, edx
mov dword [esp + esi*4 + 0x44], ecx
test ebx, ebx
cmp ecx, edi
jle 0x100546ca
mov dword [esp + esi*4 + 0x44], edi
mov dh, dh
mov eax, dword [esp + 0x24]
push 0x10182558
push eax
call fcn.101174c0
add esp, 8
mov dword [esp + 0x24], eax
test eax, 0x31ca
cmp eax, ebp
je 0x100546f2
add eax, 1
mov dword [esp + 0x24], eax
mov ebp, ebp
add esi, 1
mov ch, ch
cmp eax, ebp
jne 0x10054570
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.1011671b
mov ecx, dword [esp + 0x34]
add esp, 4
mov dword [ecx], eax
nop
mov eax, dword [ecx]
cmp eax, ebp
jne 0x1005473c
mov edx, dword [esp + 0x3c]
push edx
call fcn.101167de
add esp, 4
push ecx
pop ecx
xor eax, eax
jmp 0x10054b37
cmp dword [esp + 0x34], ebp
je 0x10054759
mov ecx, dword [esi + 4]
imul ecx, dword [esi + 8]
push ecx
push 1
push eax
call fcn.10117df0
add esp, 0xc
test edx, edx
jmp 0x1005476d
mov edx, dword [esi + 4]
imul edx, dword [esi + 8]
push edx
push ebp
push eax
call fcn.10117df0
add esp, 0xc
test ebx, ebx
test ebx, ebx
mov dh, dh
cmp dword [esi + 8], ebp
jle 0x10054b20
mov eax, dword [esp + 0x3c]
add eax, 1
mov dword [esp + 0x134], eax
test ch, ch
mov ecx, dword [esp + 0x2c]
xor edi, edi
cmp dword [ecx + 4], edi
jle 0x10054b02
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x38], 0
je 0x100548c1
test eax, 0x7f82
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jle 0x10054aeb
test edi, edi
cmp dword [esp + 0x34], 0
jne 0x100547df
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 0x100547f3
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 0x10054aeb
movzx edx, byte [ebx + 1]
mov ch, ch
movzx esi, byte [ebx]
test ecx, ecx
mov eax, dword [ebx - 1]
and eax, 0xff
test ecx, ecx
cmp dword [esp + 0x34], 0
jne 0x10054865
cmp edx, dword [esp + ecx*4 + 0xe4]
jl 0x100548ab
cmp edx, dword [esp + ecx*4 + 0x10c]
jg 0x100548ab
cmp esi, dword [esp + ecx*4 + 0xbc]
jl 0x100548ab
cmp esi, dword [esp + ecx*4 + 0x94]
jg 0x100548ab
cmp eax, dword [esp + ecx*4 + 0x6c]
jl 0x100548ab
cmp eax, dword [esp + ecx*4 + 0x44]
jg 0x100548ab
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 cl, cl
jmp 0x100548ab
cmp edx, dword [esp + ecx*4 + 0xe4]
jl 0x100548ab
cmp edx, dword [esp + ecx*4 + 0x10c]
jg 0x100548ab
cmp esi, dword [esp + ecx*4 + 0xbc]
jl 0x100548ab
cmp esi, dword [esp + ecx*4 + 0x94]
jg 0x100548ab
cmp eax, dword [esp + ecx*4 + 0x6c]
jl 0x100548ab
cmp eax, dword [esp + ecx*4 + 0x44]
jg 0x100548ab
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
mov dh, dh
mov ebx, dword [esp + 0x24]
add ecx, 1
cmp ecx, dword [esp + 0x20]
jl 0x100547c0
jmp 0x10054aeb
cmp dword [esp + 0x40], 0
je 0x100549b6
push eax
pop eax
xor esi, esi
cmp dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
jle 0x10054aeb
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
lea ebx, [ebx]
test bh, bh
push eax
pop eax
test edx, edx
jne 0x10054906
mov edx, dword [eax + 8]
imul edx, edi
add edx, dword [ecx]
cmp byte [edx + ebp], 1
jmp 0x10054912
mov eax, dword [eax + 8]
imul eax, edi
add eax, dword [ecx]
cmp byte [eax + ebp], 0
je 0x10054aeb
movzx edx, byte [ebx + 1]
test al, al
movzx ecx, byte [ebx]
mov dh, dh
mov eax, dword [ebx - 1]
and eax, 0xff
test dl, dl
add ecx, eax
add ecx, edx
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
test cl, cl
mov edx, dword [esp + 0x34]
test edx, edx
jne 0x10054970
cmp eax, dword [esp + esi*4 + 0x44]
jl 0x10054998
cmp eax, dword [esp + esi*4 + 0x6c]
jg 0x10054998
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
nop
mov esi, dword [esp + 0x24]
jmp 0x100549a0
cmp eax, dword [esp + esi*4 + 0x44]
jl 0x10054998
cmp eax, dword [esp + esi*4 + 0x6c]
jg 0x10054998
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
test bh, bh
mov esi, dword [esp + 0x24]
jmp 0x100549a0
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
add esi, 1
cmp esi, dword [esp + 0x20]
mov dword [esp + 0x24], esi
jl 0x100548f0
jmp 0x10054aeb
xchg ebx, eax
xchg ebx, eax
xor esi, esi
cmp dword [esp + 0x20], esi
jle 0x10054aeb
test ecx, ecx
mov dh, dh
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 0x100549e5
cmp byte [edx + ebp], 1
jmp 0x100549e9
cmp byte [edx + ebp], 0
je 0x10054aeb
movzx ecx, byte [ebx + 1]
mov edi, edi
movzx edx, byte [ebx]
test dh, dh
mov eax, dword [ebx - 1]
and eax, 0xff
nop
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.10052960
add esp, 0x18
test eax, 0x1ff1
cmp dword [esp + 0x34], 0
mov eax, dword [esp + 0x28]
jne 0x10054a89
cmp eax, dword [esp + esi*4 + 0x6c]
jl 0x10054ada
cmp eax, dword [esp + esi*4 + 0x44]
jg 0x10054ada
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + esi*4 + 0x94]
jl 0x10054ada
cmp eax, dword [esp + esi*4 + 0xbc]
jg 0x10054ada
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + esi*4 + 0x10c]
jl 0x10054ada
cmp eax, dword [esp + esi*4 + 0xe4]
jg 0x10054ada
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 ebp, ebp
jmp 0x10054ada
cmp eax, dword [esp + esi*4 + 0x6c]
jl 0x10054ada
cmp eax, dword [esp + esi*4 + 0x44]
jg 0x10054ada
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + esi*4 + 0x94]
jl 0x10054ada
cmp eax, dword [esp + esi*4 + 0xbc]
jg 0x10054ada
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + esi*4 + 0x10c]
jl 0x10054ada
cmp eax, dword [esp + esi*4 + 0xe4]
jg 0x10054ada
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
test eax, 0x4899
mov ebx, dword [esp + 0x24]
add esi, 1
cmp esi, dword [esp + 0x20]
jl 0x100549c4
mov ecx, dword [esp + 0x2c]
add edi, 1
add ebx, 4
cmp edi, dword [ecx + 4]
mov dword [esp + 0x24], ebx
jl 0x100547a4
mov edx, dword [esp + 0x160]
mov eax, dword [esp + 0x2c]
add dword [esp + 0x134], edx
add ebp, 1
cmp ebp, dword [eax + 8]
jl 0x10054788
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.101167de
add esp, 4
test eax, 0x2267
mov eax, 1
mov ecx, dword [esp + 0x150]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10116cb9
add esp, 0x144
ret