Function at 0x41888f
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x30
push ebx
mov ebx, dword [esp + 0x38]
push ebp
push esi
push edi
cmp byte [ebx + 0x2c], 0
lea ebp, [ebx + 4]
mov edi, ecx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x20], edi
lea esi, [ebx + 0x18]
jne 0x4188c5
lea eax, [ebx + 0x30]
mov byte [ebx + 0x2c], 1
push eax
push esi
push ebp
call fcn.00415590
test al, al
je 0x4188d5
jmp 0x4188c9
mov dword [esp + 0x10], ebp
mov eax, dword [ebx + 0x24]
mov ecx, dword [esi]
add eax, ecx
cmp dword [ebp], eax
jle 0x4188e3
mov byte [ebx + 0x4ad0], 1
xor al, al
jmp 0x41920f
mov eax, dword [ebx + 0x20]
dec eax
add ecx, eax
mov eax, dword [ebx + 0x4acc]
sub eax, 0x10
mov dword [esp + 0x28], ecx
mov dword [esp + 0x14], eax
cmp ecx, eax
jge 0x418904
mov dword [esp + 0x24], ecx
jmp 0x418912
mov dword [esp + 0x24], eax
jmp 0x418912
mov edx, dword [edi + 0x70]
mov esi, dword [edi + 0xe6c8]
and edx, esi
mov dword [edi + 0x70], edx
mov ecx, dword [ebp]
cmp ecx, dword [esp + 0x24]
jl 0x418962
cmp ecx, dword [esp + 0x28]
jg 0x41920d
jne 0x418945
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0x1c]
jge 0x41920d
mov eax, dword [esp + 0x14]
cmp ecx, eax
jl 0x418956
cmp byte [ebx + 0x4ad2], 0
je 0x419206
cmp ecx, dword [ebx + 0x4acc]
jge 0x419206
mov ecx, dword [edi + 0x4b30]
mov eax, ecx
sub eax, edx
and eax, esi
cmp eax, 0x1004
ja 0x4189a6
cmp ecx, edx
je 0x4189a6
mov ecx, edi
call fcn.00416399
mov eax, dword [edi + 0x4c54]
cmp eax, dword [edi + 0x4c44]
jg 0x4188dc
jl 0x4189a6
mov eax, dword [edi + 0x4c50]
cmp eax, dword [edi + 0x4c40]
ja 0x4188dc
mov ecx, ebp
call fcn.0040bc66
mov edx, eax
mov eax, dword [ebx + 0xb4]
and edx, 0xfffe
cmp edx, dword [ebx + eax*4 + 0x34]
jae 0x4189eb
push 0x10
pop ecx
sub ecx, eax
shr edx, cl
movzx ecx, byte [edx + ebx + 0xb8]
add ecx, dword [ebp + 4]
mov eax, ecx
shr eax, 3
add dword [ebp], eax
and ecx, 7
mov dword [ebp + 4], ecx
movzx eax, word [ebx + edx*2 + 0x4b8]
jmp 0x418a3d
push 0xf
pop esi
inc eax
cmp eax, esi
jae 0x418a0a
lea ecx, [eax + 0xd]
lea ecx, [ebx + ecx*4]
cmp edx, dword [ecx]
jb 0x418a08
inc eax
add ecx, 4
cmp eax, 0xf
jb 0x4189f9
jmp 0x418a0a
mov esi, eax
mov ecx, dword [ebp + 4]
add ecx, esi
mov eax, ecx
and ecx, 7
mov dword [ebp + 4], ecx
shr eax, 3
add dword [ebp], eax
sub edx, dword [ebx + esi*4 + 0x30]
push 0x10
pop ecx
sub ecx, esi
shr edx, cl
mov ecx, dword [ebx + esi*4 + 0x74]
add ecx, edx
cmp ecx, dword [ebx + 0x30]
sbb eax, eax
and eax, ecx
movzx eax, word [ebx + eax*2 + 0xcb8]
movzx edx, ax
mov eax, 0x100
cmp edx, eax
jae 0x418a61
mov eax, dword [edi + 0x70]
mov ecx, dword [edi + 0x4b34]
mov byte [ecx + eax], dl
inc dword [edi + 0x70]
mov eax, dword [esp + 0x14]
jmp 0x418912
cmp edx, 0x106
jb 0x418eb4
lea esi, [edx - 0x106]
cmp esi, 8
jae 0x418a7d
add esi, 2
jmp 0x418ac7
mov ebp, esi
and esi, 3
shr ebp, 2
or esi, 4
dec ebp
mov ecx, ebp
shl esi, cl
add esi, 2
test ebp, ebp
je 0x418ac3
mov ecx, dword [esp + 0x10]
call fcn.0040bc66
push 0x10
pop ecx
sub ecx, ebp
shr eax, cl
add esi, eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
add ecx, ebp
mov ebp, dword [esp + 0x10]
mov eax, ecx
shr eax, 3
add dword [ebp], eax
and ecx, 7
mov dword [ebp + 4], ecx
jmp 0x418ac7
mov ebp, dword [esp + 0x10]
mov ecx, ebp
call fcn.0040bc66
mov edx, eax
mov eax, dword [ebx + 0xfa0]
and edx, 0xfffe
cmp edx, dword [ebx + eax*4 + 0xf20]
jae 0x418b0f
push 0x10
pop ecx
sub ecx, eax
shr edx, cl
movzx ecx, byte [edx + ebx + 0xfa4]
add ecx, dword [ebp + 4]
mov eax, ecx
shr eax, 3
add dword [ebp], eax
and ecx, 7
mov dword [ebp + 4], ecx
movzx eax, word [ebx + edx*2 + 0x13a4]
jmp 0x418b79
push 0xf
pop ecx
inc eax
mov dword [esp + 0x18], ecx
cmp eax, ecx
jae 0x418b37
lea ecx, [eax + 0x3c8]
lea ecx, [ebx + ecx*4]
cmp edx, dword [ecx]
jb 0x418b33
inc eax
add ecx, 4
cmp eax, 0xf
jb 0x418b24
jmp 0x418b37
mov dword [esp + 0x18], eax
mov ecx, dword [ebp + 4]
add ecx, dword [esp + 0x18]
mov eax, ecx
and ecx, 7
shr eax, 3
add dword [ebp], eax
mov eax, dword [esp + 0x18]
mov dword [ebp + 4], ecx
push 0x10
pop ecx
sub edx, dword [ebx + eax*4 + 0xf1c]
sub ecx, eax
shr edx, cl
mov ecx, dword [ebx + eax*4 + 0xf60]
add ecx, edx
cmp ecx, dword [ebx + 0xf1c]
sbb eax, eax
and eax, ecx
movzx eax, word [ebx + eax*2 + 0x1ba4]
movzx edx, ax
cmp edx, 4
jae 0x418b89
lea ebp, [edx + 1]
jmp 0x418d00
mov eax, edx
and edx, 1
shr eax, 1
or edx, 2
dec eax
mov ecx, eax
mov dword [esp + 0x1c], eax
shl edx, cl
lea ecx, [edx + 1]
mov dword [esp + 0x2c], ecx
mov ebp, ecx
mov dword [esp + 0x18], ebp
test eax, eax
je 0x418d04
cmp eax, 4
jb 0x418ccc
jbe 0x418bf8
mov ecx, dword [esp + 0x10]
call fcn.00419957
mov edx, dword [esp + 0x1c]
mov ebp, eax
mov eax, dword [esp + 0x10]
push 0x24
pop ecx
sub ecx, edx
add edx, 0xfffffffc
shr ebp, cl
mov ecx, dword [eax + 4]
add ecx, edx
shl ebp, 4
mov edx, dword [esp + 0x10]
mov eax, ecx
add ebp, dword [esp + 0x2c]
shr eax, 3
add dword [edx], eax
and ecx, 7
mov dword [edx + 4], ecx
jmp 0x418bfc
mov edx, dword [esp + 0x10]
mov ecx, edx
call fcn.0040bc66
mov edx, dword [ebx + 0x1e8c]
and eax, 0xfffe
mov dword [esp + 0x18], eax
cmp eax, dword [ebx + edx*4 + 0x1e0c]
jae 0x418c50
invalid