Function at 0x1003d560
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x144
mov eax, dword [0x101b23cc]
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
nop
xor ebp, ebp
mov dword [esp + 0x40], ebp
mov dh, dh
mov bh, bh
mov dl, dl
mov cl, cl
mov dl, dl
push edx
pop edx
xchg ebx, eax
xchg ebx, eax
mov ecx, ecx
xor esi, esi
mov dword [esp + 0x20], esi
push ebx
pop ebx
mov dword [esp + 0x34], ebp
mov bh, bh
mov al, 0x40
mov byte [esp + 0x10], 0x62
mov byte [esp + 0x11], al
mov byte [esp + 0x12], 0
mov bl, bl
mov byte [esp + 0x14], 0x42
mov byte [esp + 0x15], al
mov byte [esp + 0x16], 0
mov ebp, ebp
push 2
lea eax, [esp + 0x14]
push eax
push edi
call fcn.100ff174
add esp, 0xc
test eax, eax
je 0x1003d60a
push 2
lea ecx, [esp + 0x18]
push ecx
push edi
call fcn.100ff174
add esp, 0xc
test eax, eax
jne 0x1003d615
mov dword [esp + 0x34], ebx
mov dl, dl
add edi, 2
mov edi, edi
push 0x101668cc
push edi
call fcn.100fcca0
add esp, 8
test eax, eax
je 0x1003d822
mov al, al
cmp edi, ebp
je 0x1003dacc
mov ebx, 0x64
lea ebx, [ebx]
cmp byte [edi], 0
je 0x1003dac8
cmp esi, 0xa
jge 0x1003dac8
mov edx, edx
mov dword [esp + 0x38], ebp
mov bl, bl
mov dword [esp + 0x40], ebp
nop
mov dword [esp + 0x20], ebp
mov dword [esp + 0x134], ebp
mov dword [esp + 0x24], ebp
mov ah, ah
mov dword [esp + 0x28], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
push ecx
pop ecx
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
push edx
pop edx
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.100feacd
add esp, 0x20
nop
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x1c]
mov dword [esp + esi*4 + 0x6c], eax
xchg ebx, eax
xchg ebx, eax
cmp eax, ebp
jge 0x1003d755
mov dword [esp + esi*4 + 0x6c], ebp
mov al, al
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
add edx, ecx
mov dword [esp + esi*4 + 0x44], edx
push eax
pop eax
mov eax, 0x168
cmp edx, eax
jle 0x1003d774
mov dword [esp + esi*4 + 0x44], eax
mov ah, ah
mov eax, dword [esp + 0x134]
sub eax, dword [esp + 0x18]
mov dword [esp + esi*4 + 0x94], eax
push ebx
pop ebx
cmp eax, ebp
jge 0x1003d795
mov dword [esp + esi*4 + 0x94], ebp
mov eax, eax
mov ecx, dword [esp + 0x134]
mov edx, dword [esp + 0x18]
add edx, ecx
mov dword [esp + esi*4 + 0xbc], edx
mov bh, bh
cmp edx, ebx
jle 0x1003d7b8
mov dword [esp + esi*4 + 0xbc], ebx
mov ah, ah
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x28]
mov dword [esp + esi*4 + 0x10c], eax
mov esi, esi
cmp eax, ebp
jge 0x1003d7d6
mov dword [esp + esi*4 + 0x10c], ebp
mov ah, ah
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
add edx, ecx
mov dword [esp + esi*4 + 0xe4], edx
mov edi, edi
cmp edx, ebx
jle 0x1003d7f6
mov dword [esp + esi*4 + 0xe4], ebx
push ecx
pop ecx
push 0x101664f0
push edi
call fcn.100fcca0
add esp, 8
mov edi, eax
mov ebx, ebx
cmp edi, ebp
je 0x1003d811
add edi, 1
mov ecx, ecx
add esi, 1
nop
cmp edi, ebp
jne 0x1003d640
jmp 0x1003dac8
push 0x101668c8
push edi
call fcn.100fcca0
add esp, 8
test eax, eax
je 0x1003d92e
push ebx
pop ebx
cmp edi, ebp
je 0x1003dacc
mov ebx, 0x64
cmp byte [edi], 0
je 0x1003dac8
cmp esi, 0xa
jge 0x1003dac8
mov ebp, ebp
mov dword [esp + 0x38], ebp
mov edx, edx
mov dword [esp + 0x40], 1
mov dl, dl
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], ebp
mov 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
mov ebp, ebp
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x13c]
push edx
push edi
call fcn.100feacd
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 edi, edi
cmp eax, ebp
jge 0x1003d8e2
mov dword [esp + esi*4 + 0x44], ebp
mov esi, esi
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + esi*4 + 0x6c], edx
mov dl, dl
mov eax, 0xff
cmp edx, eax
jle 0x1003d901
mov dword [esp + esi*4 + 0x6c], eax
mov cl, cl
push 0x101664f0
push edi
call fcn.100fcca0
add esp, 8
mov edi, eax
xchg ebx, eax
xchg ebx, eax
cmp edi, ebp
je 0x1003d91c
add edi, 1
push eax
pop eax
add esi, 1
push edx
pop edx
cmp edi, ebp
jne 0x1003d847
jmp 0x1003dac8
mov dword [esp + 0x24], edi
mov ecx, ecx
cmp edi, ebp
je 0x1003dacc
jmp 0x1003d942
xor ebp, ebp
mov eax, dword [esp + 0x24]
cmp byte [eax], 0
je 0x1003dac8
cmp esi, 0xa
jge 0x1003dac8
xor eax, eax
mov dword [esp + 0x1c], eax
mov ebx, ebx
mov dword [esp + 0x18], eax
xchg ebx, eax
xchg ebx, eax
mov dh, dh
xchg ebx, eax
xchg ebx, eax
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 esi, esi
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.100feacd
add esp, 0x10
mov bh, bh
movzx edi, byte [esp + 0x1a]
mov ch, ch
movzx ebx, byte [esp + 0x19]
mov ecx, ecx
mov ecx, dword [esp + 0x18]
and ecx, 0xff
nop
movzx ebp, byte [esp + 0x1e]
push ebx
pop ebx
movzx edx, byte [esp + 0x1d]
mov dword [esp + 0x20], edx
mov bh, bh
mov edx, dword [esp + 0x1c]
and edx, 0xff
mov edx, edx
mov eax, ebp
sub eax, edi
mov dword [esp + esi*4 + 0xe4], eax
mov ecx, ecx
test eax, eax
jge 0x1003da11
mov dword [esp + esi*4 + 0xe4], 0
mov bh, bh
add edi, ebp
mov dword [esp + esi*4 + 0x10c], edi
mov bh, bh
cmp edi, 0xff
jle 0x1003da31
mov dword [esp + esi*4 + 0x10c], 0xff
mov dh, dh
mov edi, dword [esp + 0x20]
mov eax, edi
sub eax, ebx
mov dword [esp + esi*4 + 0xbc], eax
mov cl, cl
xor ebp, ebp
cmp eax, ebp
jge 0x1003da51
mov dword [esp + esi*4 + 0xbc], ebp
mov ebx, ebx
add ebx, edi
mov dword [esp + esi*4 + 0x94], ebx
push ebx
pop ebx
mov edi, 0xff
cmp ebx, edi
jle 0x1003da6e
mov dword [esp + esi*4 + 0x94], edi
push ecx
pop ecx
mov eax, edx
sub eax, ecx
mov dword [esp + esi*4 + 0x6c], eax
mov bl, bl
cmp eax, ebp
jge 0x1003da82
mov dword [esp + esi*4 + 0x6c], ebp
mov ecx, ecx
add ecx, edx
mov dword [esp + esi*4 + 0x44], ecx
mov eax, eax
cmp ecx, edi
jle 0x1003da94
mov dword [esp + esi*4 + 0x44], edi
mov dl, dl
mov eax, dword [esp + 0x24]
push 0x101664f0
push eax
call fcn.100fcca0
add esp, 8
mov dword [esp + 0x24], eax
mov cl, cl
cmp eax, ebp
je 0x1003dab9
add eax, 1
mov dword [esp + 0x24], eax
push ebx
pop ebx
add esi, 1
mov bh, bh
cmp eax, ebp
jne 0x1003d940
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.100fbefc
mov ecx, dword [esp + 0x34]
add esp, 4
mov dword [ecx], eax
mov ah, ah
mov eax, dword [ecx]
cmp eax, ebp
jne 0x1003db04
mov edx, dword [esp + 0x3c]
push edx
call fcn.100fbfbf
add esp, 4
push edx
pop edx
xor eax, eax
jmp 0x1003defa
cmp dword [esp + 0x34], ebp
je 0x1003db21
mov ecx, dword [esi + 4]
imul ecx, dword [esi + 8]
push ecx
push 1
push eax
call fcn.100fcf90
add esp, 0xc
push ecx
pop ecx
jmp 0x1003db35
mov edx, dword [esi + 4]
imul edx, dword [esi + 8]
push edx
push ebp
push eax
call fcn.100fcf90
add esp, 0xc
mov ah, ah
mov dl, dl
mov ecx, ecx
cmp dword [esi + 8], ebp
jle 0x1003dee7
mov eax, dword [esp + 0x3c]
add eax, 1
mov dword [esp + 0x134], eax
mov al, al
mov ecx, dword [esp + 0x2c]
xor edi, edi
cmp dword [ecx + 4], edi
jle 0x1003dec9
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x24], ebx
lea esp, [esp]
cmp dword [esp + 0x38], 0
je 0x1003dc8d
mov dl, dl
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jle 0x1003deb2
lea esp, [esp]
mov edx, edx
cmp dword [esp + 0x34], 0
jne 0x1003dbaf
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 0x1003dbc3
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 0x1003deb2
movzx edx, byte [ebx + 1]
mov dh, dh
movzx esi, byte [ebx]
mov edi, edi
mov eax, dword [ebx - 1]
and eax, 0xff
mov cl, cl
cmp dword [esp + 0x34], 0
jne 0x1003dc31
cmp edx, dword [esp + ecx*4 + 0xe4]
jl 0x1003dc77
cmp edx, dword [esp + ecx*4 + 0x10c]
jg 0x1003dc77
cmp esi, dword [esp + ecx*4 + 0xbc]
jl 0x1003dc77
cmp esi, dword [esp + ecx*4 + 0x94]
jg 0x1003dc77
cmp eax, dword [esp + ecx*4 + 0x6c]
jl 0x1003dc77
cmp eax, dword [esp + ecx*4 + 0x44]
jg 0x1003dc77
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
xchg ebx, eax
xchg ebx, eax
jmp 0x1003dc77
cmp edx, dword [esp + ecx*4 + 0xe4]
jl 0x1003dc77
cmp edx, dword [esp + ecx*4 + 0x10c]
jg 0x1003dc77
cmp esi, dword [esp + ecx*4 + 0xbc]
jl 0x1003dc77
cmp esi, dword [esp + ecx*4 + 0x94]
jg 0x1003dc77
cmp eax, dword [esp + ecx*4 + 0x6c]
jl 0x1003dc77
cmp eax, dword [esp + ecx*4 + 0x44]
jg 0x1003dc77
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
push eax
pop eax
mov ebx, dword [esp + 0x24]
add ecx, 1
cmp ecx, dword [esp + 0x20]
jl 0x1003db90
jmp 0x1003deb2
cmp dword [esp + 0x40], 0
je 0x1003dd7d
mov dl, dl
xor esi, esi
cmp dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
jle 0x1003deb2
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov edx, edx
mov edi, edi
test edx, edx
jne 0x1003dccc
mov edx, dword [eax + 8]
imul edx, edi
add edx, dword [ecx]
cmp byte [edx + ebp], 1
jmp 0x1003dcd8
mov eax, dword [eax + 8]
imul eax, edi
add eax, dword [ecx]
cmp byte [eax + ebp], 0
je 0x1003deb2
movzx edx, byte [ebx + 1]
push ecx
pop ecx
movzx ecx, byte [ebx]
mov bh, bh
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
push eax
pop eax
mov edx, dword [esp + 0x34]
test edx, edx
jne 0x1003dd37
cmp eax, dword [esp + esi*4 + 0x44]
jl 0x1003dd5f
cmp eax, dword [esp + esi*4 + 0x6c]
jg 0x1003dd5f
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 ah, ah
mov esi, dword [esp + 0x24]
jmp 0x1003dd67
cmp eax, dword [esp + esi*4 + 0x44]
jl 0x1003dd5f
cmp eax, dword [esp + esi*4 + 0x6c]
jg 0x1003dd5f
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 cl, cl
mov esi, dword [esp + 0x24]
jmp 0x1003dd67
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
add esi, 1
cmp esi, dword [esp + 0x20]
mov dword [esp + 0x24], esi
jl 0x1003dcb6
jmp 0x1003deb2
mov ebx, ebx
xor esi, esi
cmp dword [esp + 0x20], esi
jle 0x1003deb2
jmp 0x1003dd90
mov ecx, ecx
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 0x1003ddb1
cmp byte [edx + ebp], 1
jmp 0x1003ddb5
cmp byte [edx + ebp], 0
je 0x1003deb2
movzx ecx, byte [ebx + 1]
mov eax, eax
movzx edx, byte [ebx]
mov bh, bh
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.1003bd20
add esp, 0x18
push eax
pop eax
cmp dword [esp + 0x34], 0
mov eax, dword [esp + 0x28]
jne 0x1003de53
cmp eax, dword [esp + esi*4 + 0x6c]
jl 0x1003dea1
cmp eax, dword [esp + esi*4 + 0x44]
jg 0x1003dea1
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + esi*4 + 0x94]
jl 0x1003dea1
cmp eax, dword [esp + esi*4 + 0xbc]
jg 0x1003dea1
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + esi*4 + 0x10c]
jl 0x1003dea1
cmp eax, dword [esp + esi*4 + 0xe4]
jg 0x1003dea1
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 ecx
pop ecx
jmp 0x1003dea1
cmp eax, dword [esp + esi*4 + 0x6c]
jl 0x1003dea1
cmp eax, dword [esp + esi*4 + 0x44]
jg 0x1003dea1
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + esi*4 + 0x94]
jl 0x1003dea1
cmp eax, dword [esp + esi*4 + 0xbc]
jg 0x1003dea1
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + esi*4 + 0x10c]
jl 0x1003dea1
cmp eax, dword [esp + esi*4 + 0xe4]
jg 0x1003dea1
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 edx, edx
mov ebx, dword [esp + 0x24]
add esi, 1
cmp esi, dword [esp + 0x20]
jl 0x1003dd90
mov ecx, dword [esp + 0x2c]
add edi, 1
add ebx, 4
cmp edi, dword [ecx + 4]
mov dword [esp + 0x24], ebx
jl 0x1003db70
mov edx, dword [esp + 0x160]
mov eax, dword [esp + 0x2c]
add dword [esp + 0x134], edx
add ebp, 1
cmp ebp, dword [eax + 8]
jl 0x1003db50
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.100fbfbf
add esp, 4
nop
mov eax, 1
mov ecx, dword [esp + 0x150]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100fc49a
add esp, 0x144
ret