Function at 0x1003e550
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x144
mov eax, dword [0x101a53c4]
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
push edx
pop edx
xor ebp, ebp
mov dword [esp + 0x40], ebp
mov bl, bl
mov dh, dh
mov ebx, ebx
mov edx, edx
mov esi, esi
mov cl, cl
mov ah, ah
push ecx
pop ecx
xor esi, esi
mov dword [esp + 0x20], esi
push eax
pop eax
mov dword [esp + 0x34], ebp
mov dl, dl
mov al, 0x40
mov byte [esp + 0x10], 0x62
mov byte [esp + 0x11], al
mov byte [esp + 0x12], 0
mov ch, ch
mov byte [esp + 0x14], 0x42
mov byte [esp + 0x15], al
mov byte [esp + 0x16], 0
mov eax, eax
push 2
lea eax, [esp + 0x14]
push eax
push edi
call fcn.100f7cf4
add esp, 0xc
test eax, eax
je 0x1003e5fb
push 2
lea ecx, [esp + 0x18]
push ecx
push edi
call fcn.100f7cf4
add esp, 0xc
test eax, eax
jne 0x1003e606
mov dword [esp + 0x34], ebx
push ecx
pop ecx
add edi, 2
mov ah, ah
push 0x1015a824
push edi
call fcn.100f5820
add esp, 8
test eax, eax
je 0x1003e80b
mov dl, dl
cmp edi, ebp
je 0x1003ea9f
mov ebx, 0x64
jmp 0x1003e630
cmp esi, 0xa
jge 0x1003ea9b
push ebx
pop ebx
mov dword [esp + 0x38], ebp
mov dh, dh
mov dword [esp + 0x40], ebp
mov edx, edx
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
mov dh, dh
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 dl, dl
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.100f764d
add esp, 0x20
mov dl, dl
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x1c]
mov dword [esp + esi*4 + 0x6c], eax
mov esi, esi
cmp eax, ebp
jge 0x1003e73e
mov dword [esp + esi*4 + 0x6c], ebp
mov ch, ch
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
add edx, ecx
mov dword [esp + esi*4 + 0x44], edx
mov ecx, ecx
mov eax, 0x168
cmp edx, eax
jle 0x1003e75d
mov dword [esp + esi*4 + 0x44], eax
mov al, al
mov eax, dword [esp + 0x134]
sub eax, dword [esp + 0x18]
mov dword [esp + esi*4 + 0x94], eax
mov bh, bh
cmp eax, ebp
jge 0x1003e77e
mov dword [esp + esi*4 + 0x94], ebp
mov ch, ch
mov ecx, dword [esp + 0x134]
mov edx, dword [esp + 0x18]
add edx, ecx
mov dword [esp + esi*4 + 0xbc], edx
mov ch, ch
cmp edx, ebx
jle 0x1003e7a1
mov dword [esp + esi*4 + 0xbc], ebx
xchg ebx, eax
xchg ebx, eax
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x28]
mov dword [esp + esi*4 + 0x10c], eax
mov edx, edx
cmp eax, ebp
jge 0x1003e7bf
mov dword [esp + esi*4 + 0x10c], ebp
mov ecx, ecx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
add edx, ecx
mov dword [esp + esi*4 + 0xe4], edx
mov ebp, ebp
cmp edx, ebx
jle 0x1003e7df
mov dword [esp + esi*4 + 0xe4], ebx
push ecx
pop ecx
push 0x1015a45c
push edi
call fcn.100f5820
add esp, 8
mov edi, eax
mov dl, dl
cmp edi, ebp
je 0x1003e7fa
add edi, 1
mov dl, dl
add esi, 1
nop
cmp edi, ebp
jne 0x1003e630
jmp 0x1003ea9b
push 0x1015a820
push edi
call fcn.100f5820
add esp, 8
test eax, eax
je 0x1003e90e
mov ch, ch
cmp edi, ebp
je 0x1003ea9f
mov ebx, 0x64
cmp esi, 0xa
jge 0x1003ea9b
mov ecx, ecx
mov dword [esp + 0x38], ebp
push edx
pop edx
mov dword [esp + 0x40], 1
mov al, al
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], ebp
mov ebp, ebp
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 eax
pop eax
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x13c]
push edx
push edi
call fcn.100f764d
add esp, 0x10
xchg ebx, eax
xchg ebx, eax
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x24]
mov dword [esp + esi*4 + 0x44], eax
mov ah, ah
cmp eax, ebp
jge 0x1003e8c2
mov dword [esp + esi*4 + 0x44], ebp
mov ebx, ebx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + esi*4 + 0x6c], edx
mov ch, ch
mov eax, 0xff
cmp edx, eax
jle 0x1003e8e1
mov dword [esp + esi*4 + 0x6c], eax
push ebx
pop ebx
push 0x1015a45c
push edi
call fcn.100f5820
add esp, 8
mov edi, eax
mov al, al
cmp edi, ebp
je 0x1003e8fc
add edi, 1
mov ebp, ebp
add esi, 1
push edx
pop edx
cmp edi, ebp
jne 0x1003e830
jmp 0x1003ea9b
mov dword [esp + 0x24], edi
push ebx
pop ebx
cmp edi, ebp
je 0x1003ea9f
jmp 0x1003e922
xor ebp, ebp
cmp esi, 0xa
jge 0x1003ea9b
xor eax, eax
mov dword [esp + 0x1c], eax
mov al, al
mov dword [esp + 0x18], eax
mov cl, cl
mov edx, edx
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 ecx, ecx
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x13c]
push edx
push eax
call fcn.100f764d
add esp, 0x10
mov ecx, ecx
movzx edi, byte [esp + 0x1a]
mov ch, ch
movzx ebx, byte [esp + 0x19]
mov ecx, ecx
mov ecx, dword [esp + 0x18]
and ecx, 0xff
push eax
pop eax
movzx ebp, byte [esp + 0x1e]
mov eax, eax
movzx edx, byte [esp + 0x1d]
mov dword [esp + 0x20], edx
mov ebp, ebp
mov edx, dword [esp + 0x1c]
and edx, 0xff
mov ecx, ecx
mov eax, ebp
sub eax, edi
mov dword [esp + esi*4 + 0xe4], eax
mov ch, ch
test eax, eax
jge 0x1003e9e5
mov dword [esp + esi*4 + 0xe4], 0
mov eax, eax
add edi, ebp
mov dword [esp + esi*4 + 0x10c], edi
mov dh, dh
cmp edi, 0xff
jle 0x1003ea05
mov dword [esp + esi*4 + 0x10c], 0xff
xchg ebx, eax
xchg ebx, eax
mov edi, dword [esp + 0x20]
mov eax, edi
sub eax, ebx
mov dword [esp + esi*4 + 0xbc], eax
mov edx, edx
xor ebp, ebp
cmp eax, ebp
jge 0x1003ea24
mov dword [esp + esi*4 + 0xbc], ebp
nop
add ebx, edi
mov dword [esp + esi*4 + 0x94], ebx
mov ah, ah
mov edi, 0xff
cmp ebx, edi
jle 0x1003ea41
mov dword [esp + esi*4 + 0x94], edi
mov bl, bl
mov eax, edx
sub eax, ecx
mov dword [esp + esi*4 + 0x6c], eax
mov bh, bh
cmp eax, ebp
jge 0x1003ea55
mov dword [esp + esi*4 + 0x6c], ebp
mov ecx, ecx
add ecx, edx
mov dword [esp + esi*4 + 0x44], ecx
mov esi, esi
cmp ecx, edi
jle 0x1003ea67
mov dword [esp + esi*4 + 0x44], edi
push edx
pop edx
mov eax, dword [esp + 0x24]
push 0x1015a45c
push eax
call fcn.100f5820
add esp, 8
mov dword [esp + 0x24], eax
mov ah, ah
cmp eax, ebp
je 0x1003ea8c
add eax, 1
mov dword [esp + 0x24], eax
push edx
pop edx
add esi, 1
mov dl, dl
cmp eax, ebp
jne 0x1003e920
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.100f4a78
mov ecx, dword [esp + 0x34]
add esp, 4
mov dword [ecx], eax
mov esi, esi
mov eax, dword [ecx]
cmp eax, ebp
jne 0x1003ead7
mov edx, dword [esp + 0x3c]
push edx
call fcn.100f4b3b
add esp, 4
mov edx, edx
xor eax, eax
jmp 0x1003eecb
cmp dword [esp + 0x34], ebp
je 0x1003eaf4
mov ecx, dword [esi + 4]
imul ecx, dword [esi + 8]
push ecx
push 1
push eax
call fcn.100f5b10
add esp, 0xc
mov ecx, ecx
jmp 0x1003eb08
mov edx, dword [esi + 4]
imul edx, dword [esi + 8]
push edx
push ebp
push eax
call fcn.100f5b10
add esp, 0xc
mov al, al
mov esi, esi
push edx
pop edx
cmp dword [esi + 8], ebp
jle 0x1003eeb7
mov eax, dword [esp + 0x3c]
add eax, 1
mov dword [esp + 0x134], eax
mov ecx, ecx
mov ecx, dword [esp + 0x2c]
xor edi, edi
cmp dword [ecx + 4], edi
jle 0x1003ee99
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x24], ebx
nop
cmp dword [esp + 0x38], 0
je 0x1003ec5d
push ebx
pop ebx
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jle 0x1003ee82
lea esp, [esp]
push eax
pop eax
cmp dword [esp + 0x34], 0
jne 0x1003eb7f
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x30]
imul eax, ebp
add eax, dword [edx]
cmp byte [eax + edi], 1
jmp 0x1003eb93
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x30]
imul edx, ebp
add edx, dword [eax]
cmp byte [edx + edi], 0
je 0x1003ee82
movzx edx, byte [ebx + 1]
mov ecx, ecx
movzx esi, byte [ebx]
mov ebx, ebx
mov eax, dword [ebx - 1]
and eax, 0xff
mov ecx, ecx
cmp dword [esp + 0x34], 0
jne 0x1003ec01
cmp edx, dword [esp + ecx*4 + 0xe4]
jl 0x1003ec47
cmp edx, dword [esp + ecx*4 + 0x10c]
jg 0x1003ec47
cmp esi, dword [esp + ecx*4 + 0xbc]
jl 0x1003ec47
cmp esi, dword [esp + ecx*4 + 0x94]
jg 0x1003ec47
cmp eax, dword [esp + ecx*4 + 0x6c]
jl 0x1003ec47
cmp eax, dword [esp + ecx*4 + 0x44]
jg 0x1003ec47
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x30]
imul eax, ebp
add eax, dword [edx]
mov byte [eax + edi], 1
mov ebp, ebp
jmp 0x1003ec47
cmp edx, dword [esp + ecx*4 + 0xe4]
jl 0x1003ec47
cmp edx, dword [esp + ecx*4 + 0x10c]
jg 0x1003ec47
cmp esi, dword [esp + ecx*4 + 0xbc]
jl 0x1003ec47
cmp esi, dword [esp + ecx*4 + 0x94]
jg 0x1003ec47
cmp eax, dword [esp + ecx*4 + 0x6c]
jl 0x1003ec47
cmp eax, dword [esp + ecx*4 + 0x44]
jg 0x1003ec47
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x30]
imul edx, ebp
add edx, dword [eax]
mov byte [edx + edi], 0
mov ah, ah
mov ebx, dword [esp + 0x24]
add ecx, 1
cmp ecx, dword [esp + 0x20]
jl 0x1003eb60
jmp 0x1003ee82
cmp dword [esp + 0x40], 0
je 0x1003ed4d
push edx
pop edx
xor esi, esi
cmp dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
jle 0x1003ee82
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov esi, esi
mov dl, dl
test edx, edx
jne 0x1003ec9c
mov edx, dword [eax + 4]
imul edx, ebp
add edx, dword [ecx]
cmp byte [edx + edi], 1
jmp 0x1003eca8
mov eax, dword [eax + 4]
imul eax, ebp
add eax, dword [ecx]
cmp byte [eax + edi], 0
je 0x1003ee82
movzx edx, byte [ebx + 1]
mov cl, cl
movzx ecx, byte [ebx]
mov dl, dl
mov eax, dword [ebx - 1]
and eax, 0xff
push ebx
pop ebx
add ecx, eax
add ecx, edx
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov eax, eax
mov edx, dword [esp + 0x34]
test edx, edx
jne 0x1003ed07
cmp eax, dword [esp + esi*4 + 0x44]
jl 0x1003ed2f
cmp eax, dword [esp + esi*4 + 0x6c]
jg 0x1003ed2f
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 4]
mov ecx, dword [esp + 0x30]
imul esi, ebp
add esi, dword [ecx]
mov byte [esi + edi], 1
mov dl, dl
mov esi, dword [esp + 0x24]
jmp 0x1003ed37
cmp eax, dword [esp + esi*4 + 0x44]
jl 0x1003ed2f
cmp eax, dword [esp + esi*4 + 0x6c]
jg 0x1003ed2f
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 4]
mov ecx, dword [esp + 0x30]
imul esi, ebp
add esi, dword [ecx]
mov byte [esi + edi], 0
mov bl, bl
mov esi, dword [esp + 0x24]
jmp 0x1003ed37
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
add esi, 1
cmp esi, dword [esp + 0x20]
mov dword [esp + 0x24], esi
jl 0x1003ec86
jmp 0x1003ee82
mov edi, edi
xor esi, esi
cmp dword [esp + 0x20], esi
jle 0x1003ee82
jmp 0x1003ed60
mov dh, dh
mov bl, bl
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x30]
imul edx, ebp
add edx, dword [eax]
cmp dword [esp + 0x34], 0
jne 0x1003ed81
cmp byte [edx + edi], 1
jmp 0x1003ed85
cmp byte [edx + edi], 0
je 0x1003ee82
movzx ecx, byte [ebx + 1]
mov edi, edi
movzx edx, byte [ebx]
push ebx
pop ebx
mov eax, dword [ebx - 1]
and eax, 0xff
push eax
pop eax
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.1003c0a0
add esp, 0x18
mov ebp, ebp
cmp dword [esp + 0x34], 0
mov eax, dword [esp + 0x28]
jne 0x1003ee23
cmp eax, dword [esp + esi*4 + 0x6c]
jl 0x1003ee71
cmp eax, dword [esp + esi*4 + 0x44]
jg 0x1003ee71
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + esi*4 + 0x94]
jl 0x1003ee71
cmp eax, dword [esp + esi*4 + 0xbc]
jg 0x1003ee71
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + esi*4 + 0x10c]
jl 0x1003ee71
cmp eax, dword [esp + esi*4 + 0xe4]
jg 0x1003ee71
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x30]
imul edx, ebp
add edx, dword [eax]
mov byte [edx + edi], 1
mov bh, bh
jmp 0x1003ee71
cmp eax, dword [esp + esi*4 + 0x6c]
jl 0x1003ee71
cmp eax, dword [esp + esi*4 + 0x44]
jg 0x1003ee71
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + esi*4 + 0x94]
jl 0x1003ee71
cmp eax, dword [esp + esi*4 + 0xbc]
jg 0x1003ee71
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + esi*4 + 0x10c]
jl 0x1003ee71
cmp eax, dword [esp + esi*4 + 0xe4]
jg 0x1003ee71
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x30]
imul edx, ebp
add edx, dword [eax]
mov byte [edx + edi], 0
mov esi, esi
mov ebx, dword [esp + 0x24]
add esi, 1
cmp esi, dword [esp + 0x20]
jl 0x1003ed60
mov ecx, dword [esp + 0x2c]
add edi, 1
add ebx, 4
cmp edi, dword [ecx + 4]
mov dword [esp + 0x24], ebx
jl 0x1003eb40
mov edx, dword [esp + 0x160]
mov eax, dword [esp + 0x2c]
add dword [esp + 0x134], edx
add ebp, 1
cmp ebp, dword [eax + 8]
jl 0x1003eb23
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.100f4b3b
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.100f5016
add esp, 0x144
ret