Function at 0x10038a20
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x144
mov eax, dword [0x101a42b4]
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
test edx, edx
xor ebp, ebp
mov dword [esp + 0x40], ebp
test bh, bh
mov edx, edx
test ebx, ebx
mov bl, bl
push ebx
pop ebx
test eax, 0x5bec
mov ch, ch
mov ecx, ecx
xor esi, esi
mov dword [esp + 0x20], esi
test eax, 0x6e53
mov dword [esp + 0x34], ebp
mov cl, cl
mov al, 0x40
mov byte [esp + 0x10], 0x62
mov byte [esp + 0x11], al
mov byte [esp + 0x12], 0
mov ah, ah
mov byte [esp + 0x14], 0x42
mov byte [esp + 0x15], al
mov byte [esp + 0x16], 0
test eax, 0x7e02
push 2
lea eax, [esp + 0x14]
push eax
push edi
call fcn.100f6e14
add esp, 0xc
test eax, eax
je 0x10038ad4
push 2
lea ecx, [esp + 0x18]
push ecx
push edi
call fcn.100f6e14
add esp, 0xc
test eax, eax
jne 0x10038adf
mov dword [esp + 0x34], ebx
test bh, bh
add edi, 2
test al, al
push 0x1015977c
push edi
call fcn.100f4be0
add esp, 8
test eax, eax
je 0x10038ce4
mov ah, ah
cmp edi, ebp
je 0x10038f8b
mov ebx, 0x64
cmp esi, 0xa
jge 0x10038f87
push ecx
pop ecx
mov dword [esp + 0x38], ebp
mov ebx, ebx
mov dword [esp + 0x40], ebp
nop
mov dword [esp + 0x20], ebp
mov dword [esp + 0x134], ebp
mov dword [esp + 0x24], ebp
mov ebp, ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
test eax, 0x1360
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 edx, 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.100f6765
add esp, 0x20
test eax, 0x47bc
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x1c]
mov dword [esp + esi*4 + 0x6c], eax
test edi, edi
cmp eax, ebp
jge 0x10038c17
mov dword [esp + esi*4 + 0x6c], ebp
test al, al
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
add edx, ecx
mov dword [esp + esi*4 + 0x44], edx
test cl, cl
mov eax, 0x168
cmp edx, eax
jle 0x10038c36
mov dword [esp + esi*4 + 0x44], eax
mov dh, dh
mov eax, dword [esp + 0x134]
sub eax, dword [esp + 0x18]
mov dword [esp + esi*4 + 0x94], eax
push ecx
pop ecx
cmp eax, ebp
jge 0x10038c57
mov dword [esp + esi*4 + 0x94], ebp
mov esi, esi
mov ecx, dword [esp + 0x134]
mov edx, dword [esp + 0x18]
add edx, ecx
mov dword [esp + esi*4 + 0xbc], edx
mov bl, bl
cmp edx, ebx
jle 0x10038c7a
mov dword [esp + esi*4 + 0xbc], ebx
test ch, ch
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x28]
mov dword [esp + esi*4 + 0x10c], eax
test edi, edi
cmp eax, ebp
jge 0x10038c98
mov dword [esp + esi*4 + 0x10c], ebp
mov al, al
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
add edx, ecx
mov dword [esp + esi*4 + 0xe4], edx
nop
cmp edx, ebx
jle 0x10038cb7
mov dword [esp + esi*4 + 0xe4], ebx
test cl, cl
push 0x101593b0
push edi
call fcn.100f4be0
add esp, 8
mov edi, eax
xchg ebx, eax
xchg ebx, eax
cmp edi, ebp
je 0x10038cd2
add edi, 1
mov edx, edx
add esi, 1
push edx
pop edx
cmp edi, ebp
jne 0x10038b04
jmp 0x10038f87
push 0x10159778
push edi
call fcn.100f4be0
add esp, 8
test eax, eax
je 0x10038df3
test ebx, ebx
cmp edi, ebp
je 0x10038f8b
mov ebx, 0x64
lea esp, [esp]
cmp esi, 0xa
jge 0x10038f87
test eax, eax
mov dword [esp + 0x38], ebp
mov ecx, ecx
mov dword [esp + 0x40], 1
test eax, 0x5579
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], ebp
mov dh, dh
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 al, al
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x13c]
push edx
push edi
call fcn.100f6765
add esp, 0x10
nop
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x24]
mov dword [esp + esi*4 + 0x44], eax
mov dh, dh
cmp eax, ebp
jge 0x10038da4
mov dword [esp + esi*4 + 0x44], ebp
test bl, bl
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 0x10038dc3
mov dword [esp + esi*4 + 0x6c], eax
test ebx, ebx
push 0x101593b0
push edi
call fcn.100f4be0
add esp, 8
mov edi, eax
test bl, bl
cmp edi, ebp
je 0x10038dde
add edi, 1
mov esi, esi
add esi, 1
test eax, 0x334a
cmp edi, ebp
jne 0x10038d10
jmp 0x10038f87
mov dword [esp + 0x24], edi
mov ch, ch
cmp edi, ebp
je 0x10038f8b
jmp 0x10038e05
xor ebp, ebp
cmp esi, 0xa
jge 0x10038f87
xor eax, eax
mov dword [esp + 0x1c], eax
mov cl, cl
mov dword [esp + 0x18], eax
mov dl, dl
test eax, 0x6c3f
test cl, cl
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 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.100f6765
add esp, 0x10
test ah, ah
movzx edi, byte [esp + 0x1a]
push edx
pop edx
movzx ebx, byte [esp + 0x19]
nop
mov ecx, dword [esp + 0x18]
and ecx, 0xff
mov ebp, ebp
movzx ebp, byte [esp + 0x1e]
push eax
pop eax
movzx edx, byte [esp + 0x1d]
mov dword [esp + 0x20], edx
mov ecx, ecx
mov edx, dword [esp + 0x1c]
and edx, 0xff
test ecx, ecx
mov eax, ebp
sub eax, edi
mov dword [esp + esi*4 + 0xe4], eax
mov dl, dl
test eax, eax
jge 0x10038eca
mov dword [esp + esi*4 + 0xe4], 0
mov ebx, ebx
add edi, ebp
mov dword [esp + esi*4 + 0x10c], edi
mov ebp, ebp
cmp edi, 0xff
jle 0x10038eed
mov dword [esp + esi*4 + 0x10c], 0xff
test eax, 0x3a26
mov edi, dword [esp + 0x20]
mov eax, edi
sub eax, ebx
mov dword [esp + esi*4 + 0xbc], eax
push ebx
pop ebx
xor ebp, ebp
cmp eax, ebp
jge 0x10038f0d
mov dword [esp + esi*4 + 0xbc], ebp
xchg ebx, eax
xchg ebx, eax
add ebx, edi
mov dword [esp + esi*4 + 0x94], ebx
test edx, edx
mov edi, 0xff
cmp ebx, edi
jle 0x10038f2a
mov dword [esp + esi*4 + 0x94], edi
mov edx, edx
mov eax, edx
sub eax, ecx
mov dword [esp + esi*4 + 0x6c], eax
mov bh, bh
cmp eax, ebp
jge 0x10038f3e
mov dword [esp + esi*4 + 0x6c], ebp
mov ch, ch
add ecx, edx
mov dword [esp + esi*4 + 0x44], ecx
mov esi, esi
cmp ecx, edi
jle 0x10038f53
mov dword [esp + esi*4 + 0x44], edi
test eax, 0x8f1
mov eax, dword [esp + 0x24]
push 0x101593b0
push eax
call fcn.100f4be0
add esp, 8
mov dword [esp + 0x24], eax
push edx
pop edx
cmp eax, ebp
je 0x10038f78
add eax, 1
mov dword [esp + 0x24], eax
mov bh, bh
add esi, 1
mov ebx, ebx
cmp eax, ebp
jne 0x10038e03
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.100f3e38
mov ecx, dword [esp + 0x34]
add esp, 4
mov dword [ecx], eax
mov dl, dl
mov eax, dword [ecx]
cmp eax, ebp
jne 0x10038fc3
mov edx, dword [esp + 0x3c]
push edx
call fcn.100f3efb
add esp, 4
mov cl, cl
xor eax, eax
jmp 0x100393bd
cmp dword [esp + 0x34], ebp
je 0x10038fe0
mov ecx, dword [esi + 4]
imul ecx, dword [esi + 8]
push ecx
push 1
push eax
call fcn.100f4ed0
add esp, 0xc
push eax
pop eax
jmp 0x10038ff4
mov edx, dword [esi + 4]
imul edx, dword [esi + 8]
push edx
push ebp
push eax
call fcn.100f4ed0
add esp, 0xc
test eax, eax
mov esi, esi
mov cl, cl
cmp dword [esi + 8], ebp
jle 0x100393a9
mov eax, dword [esp + 0x3c]
add eax, 1
mov dword [esp + 0x134], eax
nop
test esi, esi
mov ecx, dword [esp + 0x2c]
xor edi, edi
cmp dword [ecx + 4], edi
jle 0x1003938b
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x24], ebx
lea esp, [esp]
cmp dword [esp + 0x38], 0
je 0x1003914c
mov ebx, ebx
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jle 0x10039374
lea esp, [esp]
test edx, edx
cmp dword [esp + 0x34], 0
jne 0x1003906f
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 0x10039083
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 0x10039374
movzx edx, byte [ebx + 1]
push edx
pop edx
movzx esi, byte [ebx]
mov edx, edx
mov eax, dword [ebx - 1]
and eax, 0xff
test bl, bl
cmp dword [esp + 0x34], 0
jne 0x100390f1
cmp edx, dword [esp + ecx*4 + 0xe4]
jl 0x10039136
cmp edx, dword [esp + ecx*4 + 0x10c]
jg 0x10039136
cmp esi, dword [esp + ecx*4 + 0xbc]
jl 0x10039136
cmp esi, dword [esp + ecx*4 + 0x94]
jg 0x10039136
cmp eax, dword [esp + ecx*4 + 0x6c]
jl 0x10039136
cmp eax, dword [esp + ecx*4 + 0x44]
jg 0x10039136
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 cl, cl
jmp 0x10039136
cmp edx, dword [esp + ecx*4 + 0xe4]
jl 0x10039136
cmp edx, dword [esp + ecx*4 + 0x10c]
jg 0x10039136
cmp esi, dword [esp + ecx*4 + 0xbc]
jl 0x10039136
cmp esi, dword [esp + ecx*4 + 0x94]
jg 0x10039136
cmp eax, dword [esp + ecx*4 + 0x6c]
jl 0x10039136
cmp eax, dword [esp + ecx*4 + 0x44]
jg 0x10039136
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
nop
mov ebx, dword [esp + 0x24]
add ecx, 1
cmp ecx, dword [esp + 0x20]
jl 0x10039050
jmp 0x10039374
cmp dword [esp + 0x40], 0
je 0x1003923c
mov ch, ch
xor esi, esi
cmp dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
jle 0x10039374
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
test ecx, ecx
test cl, cl
test edx, edx
jne 0x1003918b
mov edx, dword [eax + 4]
imul edx, ebp
add edx, dword [ecx]
cmp byte [edx + edi], 1
jmp 0x10039197
mov eax, dword [eax + 4]
imul eax, ebp
add eax, dword [ecx]
cmp byte [eax + edi], 0
je 0x10039374
movzx edx, byte [ebx + 1]
mov ebp, ebp
movzx ecx, byte [ebx]
test esi, esi
mov eax, dword [ebx - 1]
and eax, 0xff
mov eax, eax
add ecx, eax
add ecx, edx
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
test bh, bh
mov edx, dword [esp + 0x34]
test edx, edx
jne 0x100391f6
cmp eax, dword [esp + esi*4 + 0x44]
jl 0x1003921e
cmp eax, dword [esp + esi*4 + 0x6c]
jg 0x1003921e
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
test edi, edi
mov esi, dword [esp + 0x24]
jmp 0x10039226
cmp eax, dword [esp + esi*4 + 0x44]
jl 0x1003921e
cmp eax, dword [esp + esi*4 + 0x6c]
jg 0x1003921e
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 ebx, ebx
mov esi, dword [esp + 0x24]
jmp 0x10039226
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
add esi, 1
cmp esi, dword [esp + 0x20]
mov dword [esp + 0x24], esi
jl 0x10039175
jmp 0x10039374
test eax, 0x2964
xor esi, esi
cmp dword [esp + 0x20], esi
jle 0x10039374
lea ecx, [ecx]
push eax
pop eax
test eax, 0x4d5a
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 0x10039274
cmp byte [edx + edi], 1
jmp 0x10039278
cmp byte [edx + edi], 0
je 0x10039374
movzx ecx, byte [ebx + 1]
test ebx, ebx
movzx edx, byte [ebx]
test edx, edx
mov eax, dword [ebx - 1]
and eax, 0xff
xchg ebx, eax
xchg ebx, 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.10036550
add esp, 0x18
test bl, bl
cmp dword [esp + 0x34], 0
mov eax, dword [esp + 0x28]
jne 0x10039315
cmp eax, dword [esp + esi*4 + 0x6c]
jl 0x10039363
cmp eax, dword [esp + esi*4 + 0x44]
jg 0x10039363
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + esi*4 + 0x94]
jl 0x10039363
cmp eax, dword [esp + esi*4 + 0xbc]
jg 0x10039363
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + esi*4 + 0x10c]
jl 0x10039363
cmp eax, dword [esp + esi*4 + 0xe4]
jg 0x10039363
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
nop
jmp 0x10039363
cmp eax, dword [esp + esi*4 + 0x6c]
jl 0x10039363
cmp eax, dword [esp + esi*4 + 0x44]
jg 0x10039363
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + esi*4 + 0x94]
jl 0x10039363
cmp eax, dword [esp + esi*4 + 0xbc]
jg 0x10039363
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + esi*4 + 0x10c]
jl 0x10039363
cmp eax, dword [esp + esi*4 + 0xe4]
jg 0x10039363
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
push eax
pop eax
mov ebx, dword [esp + 0x24]
add esi, 1
cmp esi, dword [esp + 0x20]
jl 0x10039250
mov ecx, dword [esp + 0x2c]
add edi, 1
add ebx, 4
cmp edi, dword [ecx + 4]
mov dword [esp + 0x24], ebx
jl 0x10039030
mov edx, dword [esp + 0x160]
mov eax, dword [esp + 0x2c]
add dword [esp + 0x134], edx
add ebp, 1
cmp ebp, dword [eax + 8]
jl 0x10039010
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.100f3efb
add esp, 4
mov ch, ch
mov eax, 1
mov ecx, dword [esp + 0x150]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100f43d6
add esp, 0x144
ret