Function at 0x1003cac0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x144
mov eax, dword [0x101b03d4]
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 ebx, ebx
xor ebp, ebp
mov dword [esp + 0x40], ebp
mov esi, esi
mov ch, ch
mov dl, dl
mov edi, edi
mov edx, edx
mov dl, dl
nop
mov dl, dl
xor esi, esi
mov dword [esp + 0x20], esi
mov edx, edx
mov dword [esp + 0x34], ebp
nop
mov al, 0x40
mov byte [esp + 0x10], 0x62
mov byte [esp + 0x11], al
mov byte [esp + 0x12], 0
mov al, al
mov byte [esp + 0x14], 0x42
mov byte [esp + 0x15], al
mov byte [esp + 0x16], 0
mov esi, esi
push 2
lea eax, [esp + 0x14]
push eax
push edi
call fcn.100fde04
add esp, 0xc
test eax, eax
je 0x1003cb69
push 2
lea ecx, [esp + 0x18]
push ecx
push edi
call fcn.100fde04
add esp, 0xc
test eax, eax
jne 0x1003cb74
mov dword [esp + 0x34], ebx
push ecx
pop ecx
add edi, 2
mov dl, dl
push 0x101658b4
push edi
call fcn.100fb930
add esp, 8
test eax, eax
je 0x1003cd83
mov ch, ch
cmp edi, ebp
je 0x1003d033
mov ebx, 0x64
lea esp, [esp]
cmp byte [edi], 0
je 0x1003d02f
cmp esi, 0xa
jge 0x1003d02f
mov esi, esi
mov dword [esp + 0x38], ebp
push ecx
pop ecx
mov dword [esp + 0x40], ebp
xchg ebx, eax
xchg ebx, 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
mov esi, esi
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 dh, dh
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.100fd75d
add esp, 0x20
mov edi, edi
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x1c]
mov dword [esp + esi*4 + 0x6c], eax
mov edx, edx
cmp eax, ebp
jge 0x1003ccb6
mov dword [esp + esi*4 + 0x6c], ebp
push edx
pop edx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
add edx, ecx
mov dword [esp + esi*4 + 0x44], edx
mov bl, bl
mov eax, 0x168
cmp edx, eax
jle 0x1003ccd5
mov dword [esp + esi*4 + 0x44], eax
mov ebp, ebp
mov eax, dword [esp + 0x134]
sub eax, dword [esp + 0x18]
mov dword [esp + esi*4 + 0x94], eax
mov bl, bl
cmp eax, ebp
jge 0x1003ccf6
mov dword [esp + esi*4 + 0x94], ebp
mov bl, bl
mov ecx, dword [esp + 0x134]
mov edx, dword [esp + 0x18]
add edx, ecx
mov dword [esp + esi*4 + 0xbc], edx
nop
cmp edx, ebx
jle 0x1003cd18
mov dword [esp + esi*4 + 0xbc], ebx
mov edi, edi
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x28]
mov dword [esp + esi*4 + 0x10c], eax
mov esi, esi
cmp eax, ebp
jge 0x1003cd36
mov dword [esp + esi*4 + 0x10c], ebp
push ecx
pop ecx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
add edx, ecx
mov dword [esp + esi*4 + 0xe4], edx
push eax
pop eax
cmp edx, ebx
jle 0x1003cd56
mov dword [esp + esi*4 + 0xe4], ebx
mov edx, edx
push 0x101654d8
push edi
call fcn.100fb930
add esp, 8
mov edi, eax
mov ah, ah
cmp edi, ebp
je 0x1003cd71
add edi, 1
mov edx, edx
add esi, 1
mov ebx, ebx
cmp edi, ebp
jne 0x1003cba0
jmp 0x1003d02f
push 0x101658b0
push edi
call fcn.100fb930
add esp, 8
test eax, eax
je 0x1003ce97
push ecx
pop ecx
cmp edi, ebp
je 0x1003d033
mov ebx, 0x64
jmp 0x1003cdb0
cmp byte [edi], 0
je 0x1003d02f
cmp esi, 0xa
jge 0x1003d02f
push ebx
pop ebx
mov dword [esp + 0x38], ebp
mov ch, ch
mov dword [esp + 0x40], 1
mov ebp, ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], ebp
xchg ebx, eax
xchg ebx, eax
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 ebx
pop ebx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x13c]
push edx
push edi
call fcn.100fd75d
add esp, 0x10
push ecx
pop ecx
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x24]
mov dword [esp + esi*4 + 0x44], eax
mov dl, dl
cmp eax, ebp
jge 0x1003ce4b
mov dword [esp + esi*4 + 0x44], ebp
mov ah, ah
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + esi*4 + 0x6c], edx
mov bh, bh
mov eax, 0xff
cmp edx, eax
jle 0x1003ce6a
mov dword [esp + esi*4 + 0x6c], eax
mov ch, ch
push 0x101654d8
push edi
call fcn.100fb930
add esp, 8
mov edi, eax
mov esi, esi
cmp edi, ebp
je 0x1003ce85
add edi, 1
mov ebx, ebx
add esi, 1
mov al, al
cmp edi, ebp
jne 0x1003cdb0
jmp 0x1003d02f
mov dword [esp + 0x24], edi
mov ch, ch
cmp edi, ebp
je 0x1003d033
jmp 0x1003cea9
xor ebp, ebp
mov eax, dword [esp + 0x24]
cmp byte [eax], 0
je 0x1003d02f
cmp esi, 0xa
jge 0x1003d02f
xor eax, eax
mov dword [esp + 0x1c], eax
mov ebx, ebx
mov dword [esp + 0x18], eax
mov edx, edx
mov ch, ch
mov al, al
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 eax, eax
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.100fd75d
add esp, 0x10
mov ebx, ebx
movzx edi, byte [esp + 0x1a]
mov dl, dl
movzx ebx, byte [esp + 0x19]
push eax
pop eax
mov ecx, dword [esp + 0x18]
and ecx, 0xff
mov edx, edx
movzx ebp, byte [esp + 0x1e]
push ecx
pop ecx
movzx edx, byte [esp + 0x1d]
mov dword [esp + 0x20], edx
mov esi, esi
mov edx, dword [esp + 0x1c]
and edx, 0xff
mov edi, edi
mov eax, ebp
sub eax, edi
mov dword [esp + esi*4 + 0xe4], eax
push edx
pop edx
test eax, eax
jge 0x1003cf79
mov dword [esp + esi*4 + 0xe4], 0
push ecx
pop ecx
add edi, ebp
mov dword [esp + esi*4 + 0x10c], edi
xchg ebx, eax
xchg ebx, eax
cmp edi, 0xff
jle 0x1003cf99
mov dword [esp + esi*4 + 0x10c], 0xff
mov eax, eax
mov edi, dword [esp + 0x20]
mov eax, edi
sub eax, ebx
mov dword [esp + esi*4 + 0xbc], eax
nop
xor ebp, ebp
cmp eax, ebp
jge 0x1003cfb8
mov dword [esp + esi*4 + 0xbc], ebp
mov ebp, ebp
add ebx, edi
mov dword [esp + esi*4 + 0x94], ebx
mov dh, dh
mov edi, 0xff
cmp ebx, edi
jle 0x1003cfd5
mov dword [esp + esi*4 + 0x94], edi
mov esi, esi
mov eax, edx
sub eax, ecx
mov dword [esp + esi*4 + 0x6c], eax
push eax
pop eax
cmp eax, ebp
jge 0x1003cfe9
mov dword [esp + esi*4 + 0x6c], ebp
mov ebx, ebx
add ecx, edx
mov dword [esp + esi*4 + 0x44], ecx
mov dl, dl
cmp ecx, edi
jle 0x1003cffb
mov dword [esp + esi*4 + 0x44], edi
push ebx
pop ebx
mov eax, dword [esp + 0x24]
push 0x101654d8
push eax
call fcn.100fb930
add esp, 8
mov dword [esp + 0x24], eax
mov eax, eax
cmp eax, ebp
je 0x1003d020
add eax, 1
mov dword [esp + 0x24], eax
mov edi, edi
add esi, 1
mov cl, cl
cmp eax, ebp
jne 0x1003cea7
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.100fab8c
mov ecx, dword [esp + 0x34]
add esp, 4
mov dword [ecx], eax
mov dh, dh
mov eax, dword [ecx]
cmp eax, ebp
jne 0x1003d06b
mov edx, dword [esp + 0x3c]
push edx
call fcn.100fac4f
add esp, 4
mov dl, dl
xor eax, eax
jmp 0x1003d459
cmp dword [esp + 0x34], ebp
je 0x1003d087
mov ecx, dword [esi + 4]
imul ecx, dword [esi + 8]
push ecx
push 1
push eax
call fcn.100fbc20
add esp, 0xc
nop
jmp 0x1003d09b
mov edx, dword [esi + 4]
imul edx, dword [esi + 8]
push edx
push ebp
push eax
call fcn.100fbc20
add esp, 0xc
mov dl, dl
push ebx
pop ebx
push eax
pop eax
cmp dword [esi + 8], ebp
jle 0x1003d445
mov eax, dword [esp + 0x3c]
add eax, 1
mov dword [esp + 0x134], eax
mov bh, bh
mov ecx, dword [esp + 0x2c]
xor edi, edi
cmp dword [ecx + 4], edi
jle 0x1003d427
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x38], 0
je 0x1003d1ed
mov eax, eax
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jle 0x1003d410
jmp 0x1003d0f0
mov bh, bh
cmp dword [esp + 0x34], 0
jne 0x1003d10f
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 0x1003d123
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 0x1003d410
movzx edx, byte [ebx + 1]
mov ebp, ebp
movzx esi, byte [ebx]
mov al, al
mov eax, dword [ebx - 1]
and eax, 0xff
push ecx
pop ecx
cmp dword [esp + 0x34], 0
jne 0x1003d191
cmp edx, dword [esp + ecx*4 + 0xe4]
jl 0x1003d1d7
cmp edx, dword [esp + ecx*4 + 0x10c]
jg 0x1003d1d7
cmp esi, dword [esp + ecx*4 + 0xbc]
jl 0x1003d1d7
cmp esi, dword [esp + ecx*4 + 0x94]
jg 0x1003d1d7
cmp eax, dword [esp + ecx*4 + 0x6c]
jl 0x1003d1d7
cmp eax, dword [esp + ecx*4 + 0x44]
jg 0x1003d1d7
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 0x1003d1d7
cmp edx, dword [esp + ecx*4 + 0xe4]
jl 0x1003d1d7
cmp edx, dword [esp + ecx*4 + 0x10c]
jg 0x1003d1d7
cmp esi, dword [esp + ecx*4 + 0xbc]
jl 0x1003d1d7
cmp esi, dword [esp + ecx*4 + 0x94]
jg 0x1003d1d7
cmp eax, dword [esp + ecx*4 + 0x6c]
jl 0x1003d1d7
cmp eax, dword [esp + ecx*4 + 0x44]
jg 0x1003d1d7
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 edx, edx
mov ebx, dword [esp + 0x24]
add ecx, 1
cmp ecx, dword [esp + 0x20]
jl 0x1003d0f0
jmp 0x1003d410
cmp dword [esp + 0x40], 0
je 0x1003d2dd
mov dh, dh
xor esi, esi
cmp dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
jle 0x1003d410
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov bh, bh
mov eax, eax
test edx, edx
jne 0x1003d22c
mov edx, dword [eax + 8]
imul edx, edi
add edx, dword [ecx]
cmp byte [edx + ebp], 1
jmp 0x1003d238
mov eax, dword [eax + 8]
imul eax, edi
add eax, dword [ecx]
cmp byte [eax + ebp], 0
je 0x1003d410
movzx edx, byte [ebx + 1]
mov bl, bl
movzx ecx, byte [ebx]
mov esi, esi
mov eax, dword [ebx - 1]
and eax, 0xff
mov edi, edi
add ecx, eax
add ecx, edx
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
push ebx
pop ebx
mov edx, dword [esp + 0x34]
test edx, edx
jne 0x1003d297
cmp eax, dword [esp + esi*4 + 0x44]
jl 0x1003d2bf
cmp eax, dword [esp + esi*4 + 0x6c]
jg 0x1003d2bf
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 bh, bh
mov esi, dword [esp + 0x24]
jmp 0x1003d2c7
cmp eax, dword [esp + esi*4 + 0x44]
jl 0x1003d2bf
cmp eax, dword [esp + esi*4 + 0x6c]
jg 0x1003d2bf
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
xchg ebx, eax
xchg ebx, eax
mov esi, dword [esp + 0x24]
jmp 0x1003d2c7
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
add esi, 1
cmp esi, dword [esp + 0x20]
mov dword [esp + 0x24], esi
jl 0x1003d216
jmp 0x1003d410
xchg ebx, eax
xchg ebx, eax
xor esi, esi
cmp dword [esp + 0x20], esi
jle 0x1003d410
jmp 0x1003d2f0
mov edx, edx
nop
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 0x1003d310
cmp byte [edx + ebp], 1
jmp 0x1003d314
cmp byte [edx + ebp], 0
je 0x1003d410
movzx ecx, byte [ebx + 1]
mov eax, eax
movzx edx, byte [ebx]
push edx
pop edx
mov eax, dword [ebx - 1]
and eax, 0xff
mov ebx, ebx
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.1003b290
add esp, 0x18
nop
cmp dword [esp + 0x34], 0
mov eax, dword [esp + 0x28]
jne 0x1003d3b1
cmp eax, dword [esp + esi*4 + 0x6c]
jl 0x1003d3ff
cmp eax, dword [esp + esi*4 + 0x44]
jg 0x1003d3ff
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + esi*4 + 0x94]
jl 0x1003d3ff
cmp eax, dword [esp + esi*4 + 0xbc]
jg 0x1003d3ff
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + esi*4 + 0x10c]
jl 0x1003d3ff
cmp eax, dword [esp + esi*4 + 0xe4]
jg 0x1003d3ff
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 ebx
pop ebx
jmp 0x1003d3ff
cmp eax, dword [esp + esi*4 + 0x6c]
jl 0x1003d3ff
cmp eax, dword [esp + esi*4 + 0x44]
jg 0x1003d3ff
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + esi*4 + 0x94]
jl 0x1003d3ff
cmp eax, dword [esp + esi*4 + 0xbc]
jg 0x1003d3ff
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + esi*4 + 0x10c]
jl 0x1003d3ff
cmp eax, dword [esp + esi*4 + 0xe4]
jg 0x1003d3ff
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 esi, esi
mov ebx, dword [esp + 0x24]
add esi, 1
cmp esi, dword [esp + 0x20]
jl 0x1003d2f0
mov ecx, dword [esp + 0x2c]
add edi, 1
add ebx, 4
cmp edi, dword [ecx + 4]
mov dword [esp + 0x24], ebx
jl 0x1003d0d2
mov edx, dword [esp + 0x160]
mov eax, dword [esp + 0x2c]
add dword [esp + 0x134], edx
add ebp, 1
cmp ebp, dword [eax + 8]
jl 0x1003d0b6
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.100fac4f
add esp, 4
mov ah, ah
mov eax, 1
mov ecx, dword [esp + 0x150]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100fb12a
add esp, 0x144
ret