Function at 0x10037d80
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 eax, 0x77cc
xor ebp, ebp
mov dword [esp + 0x40], ebp
test bh, bh
mov bh, bh
mov al, al
test ah, ah
mov esi, esi
mov esi, esi
mov edi, edi
mov ah, ah
xor esi, esi
mov dword [esp + 0x20], esi
test eax, eax
mov dword [esp + 0x34], ebp
test eax, 0x3dd6
mov al, 0x40
mov byte [esp + 0x10], 0x62
mov byte [esp + 0x11], al
mov byte [esp + 0x12], 0
mov dh, dh
mov byte [esp + 0x14], 0x42
mov byte [esp + 0x15], al
mov byte [esp + 0x16], 0
test eax, eax
push 2
lea eax, [esp + 0x14]
push eax
push edi
call fcn.100f6e14
add esp, 0xc
test eax, eax
je 0x10037e31
push 2
lea ecx, [esp + 0x18]
push ecx
push edi
call fcn.100f6e14
add esp, 0xc
test eax, eax
jne 0x10037e3c
mov dword [esp + 0x34], ebx
test eax, eax
add edi, 2
test ch, ch
push 0x1015977c
push edi
call fcn.100f4be0
add esp, 8
test eax, eax
je 0x1003804c
push ebx
pop ebx
cmp edi, ebp
je 0x10038303
mov ebx, 0x64
cmp byte [edi], 0
je 0x100382ff
cmp esi, 0xa
jge 0x100382ff
test al, al
mov dword [esp + 0x38], ebp
push ecx
pop ecx
mov dword [esp + 0x40], ebp
mov edx, edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x134], ebp
mov dword [esp + 0x24], ebp
test dh, dh
mov dword [esp + 0x28], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
test bl, bl
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
test eax, 0x73a
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 ch, ch
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x1c]
mov dword [esp + esi*4 + 0x6c], eax
test ch, ch
cmp eax, ebp
jge 0x10037f7b
mov dword [esp + esi*4 + 0x6c], ebp
test dh, dh
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
add edx, ecx
mov dword [esp + esi*4 + 0x44], edx
test eax, eax
mov eax, 0x168
cmp edx, eax
jle 0x10037f9a
mov dword [esp + esi*4 + 0x44], eax
mov edi, edi
mov eax, dword [esp + 0x134]
sub eax, dword [esp + 0x18]
mov dword [esp + esi*4 + 0x94], eax
test dl, dl
cmp eax, ebp
jge 0x10037fbb
mov dword [esp + esi*4 + 0x94], ebp
mov ecx, ecx
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 0x10037fde
mov dword [esp + esi*4 + 0xbc], ebx
mov dl, dl
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x28]
mov dword [esp + esi*4 + 0x10c], eax
push ecx
pop ecx
cmp eax, ebp
jge 0x10037ffc
mov dword [esp + esi*4 + 0x10c], ebp
test ecx, ecx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
add edx, ecx
mov dword [esp + esi*4 + 0xe4], edx
test esi, esi
cmp edx, ebx
jle 0x1003801c
mov dword [esp + esi*4 + 0xe4], ebx
test bh, bh
push 0x101593b0
push edi
call fcn.100f4be0
add esp, 8
mov edi, eax
test eax, 0x6e7c
cmp edi, ebp
je 0x1003803a
add edi, 1
mov ebp, ebp
add esi, 1
mov ah, ah
cmp edi, ebp
jne 0x10037e61
jmp 0x100382ff
push 0x10159778
push edi
call fcn.100f4be0
add esp, 8
test eax, eax
je 0x10038158
mov ah, ah
cmp edi, ebp
je 0x10038303
mov ebx, 0x64
cmp byte [edi], 0
je 0x100382ff
cmp esi, 0xa
jge 0x100382ff
push ebx
pop ebx
mov dword [esp + 0x38], ebp
push ecx
pop ecx
mov dword [esp + 0x40], 1
push eax
pop eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], ebp
test ecx, ecx
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
test edi, edi
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x24]
mov dword [esp + esi*4 + 0x44], eax
mov edi, edi
cmp eax, ebp
jge 0x1003810c
mov dword [esp + esi*4 + 0x44], ebp
mov ebp, ebp
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + esi*4 + 0x6c], edx
test edx, edx
mov eax, 0xff
cmp edx, eax
jle 0x1003812b
mov dword [esp + esi*4 + 0x6c], eax
push eax
pop eax
push 0x101593b0
push edi
call fcn.100f4be0
add esp, 8
mov edi, eax
test eax, eax
cmp edi, ebp
je 0x10038146
add edi, 1
test edx, edx
add esi, 1
mov ebp, ebp
cmp edi, ebp
jne 0x10038071
jmp 0x100382ff
mov dword [esp + 0x24], edi
test ah, ah
cmp edi, ebp
je 0x10038303
jmp 0x10038172
xor ebp, ebp
mov eax, dword [esp + 0x24]
cmp byte [eax], 0
je 0x100382ff
cmp esi, 0xa
jge 0x100382ff
xor eax, eax
mov dword [esp + 0x1c], eax
test eax, 0x2ba5
mov dword [esp + 0x18], eax
test dl, dl
mov dh, dh
test bl, bl
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
push ecx
pop ecx
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.100f6765
add esp, 0x10
test cl, cl
movzx edi, byte [esp + 0x1a]
mov bl, bl
movzx ebx, byte [esp + 0x19]
mov ebx, ebx
mov ecx, dword [esp + 0x18]
and ecx, 0xff
test al, al
movzx ebp, byte [esp + 0x1e]
test edx, edx
movzx edx, byte [esp + 0x1d]
mov dword [esp + 0x20], edx
mov ch, ch
mov edx, dword [esp + 0x1c]
and edx, 0xff
push eax
pop eax
mov eax, ebp
sub eax, edi
mov dword [esp + esi*4 + 0xe4], eax
mov edx, edx
test eax, eax
jge 0x10038245
mov dword [esp + esi*4 + 0xe4], 0
test dh, dh
add edi, ebp
mov dword [esp + esi*4 + 0x10c], edi
mov bl, bl
cmp edi, 0xff
jle 0x10038265
mov dword [esp + esi*4 + 0x10c], 0xff
test cl, cl
mov edi, dword [esp + 0x20]
mov eax, edi
sub eax, ebx
mov dword [esp + esi*4 + 0xbc], eax
mov dh, dh
xor ebp, ebp
cmp eax, ebp
jge 0x10038288
mov dword [esp + esi*4 + 0xbc], ebp
test eax, 0x7bf7
add ebx, edi
mov dword [esp + esi*4 + 0x94], ebx
mov edx, edx
mov edi, 0xff
cmp ebx, edi
jle 0x100382a5
mov dword [esp + esi*4 + 0x94], edi
test al, al
mov eax, edx
sub eax, ecx
mov dword [esp + esi*4 + 0x6c], eax
test bh, bh
cmp eax, ebp
jge 0x100382b9
mov dword [esp + esi*4 + 0x6c], ebp
test edi, edi
add ecx, edx
mov dword [esp + esi*4 + 0x44], ecx
test bh, bh
cmp ecx, edi
jle 0x100382cb
mov dword [esp + esi*4 + 0x44], edi
test cl, cl
mov eax, dword [esp + 0x24]
push 0x101593b0
push eax
call fcn.100f4be0
add esp, 8
mov dword [esp + 0x24], eax
test bh, bh
cmp eax, ebp
je 0x100382f0
add eax, 1
mov dword [esp + 0x24], eax
test ecx, ecx
add esi, 1
mov dl, dl
cmp eax, ebp
jne 0x10038170
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 ah, ah
mov eax, dword [ecx]
cmp eax, ebp
jne 0x1003833b
mov edx, dword [esp + 0x3c]
push edx
call fcn.100f3efb
add esp, 4
mov cl, cl
xor eax, eax
jmp 0x1003872f
cmp dword [esp + 0x34], ebp
je 0x10038358
mov ecx, dword [esi + 4]
imul ecx, dword [esi + 8]
push ecx
push 1
push eax
call fcn.100f4ed0
add esp, 0xc
test cl, cl
jmp 0x1003836c
mov edx, dword [esi + 4]
imul edx, dword [esi + 8]
push edx
push ebp
push eax
call fcn.100f4ed0
add esp, 0xc
mov al, al
mov bh, bh
mov dl, dl
cmp dword [esi + 8], ebp
jle 0x1003871b
mov eax, dword [esp + 0x3c]
add eax, 1
mov dword [esp + 0x134], eax
test ebx, ebx
mov ecx, dword [esp + 0x2c]
xor edi, edi
cmp dword [ecx + 4], edi
jle 0x100386fd
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x38], 0
je 0x100384c0
test edi, edi
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jle 0x100386e6
lea esp, [esp]
test eax, 0xb41
cmp dword [esp + 0x34], 0
jne 0x100383e2
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 0x100383f6
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 0x100386e6
movzx edx, byte [ebx + 1]
test edx, edx
movzx esi, byte [ebx]
mov al, al
mov eax, dword [ebx - 1]
and eax, 0xff
mov bh, bh
cmp dword [esp + 0x34], 0
jne 0x10038464
cmp edx, dword [esp + ecx*4 + 0xe4]
jl 0x100384aa
cmp edx, dword [esp + ecx*4 + 0x10c]
jg 0x100384aa
cmp esi, dword [esp + ecx*4 + 0xbc]
jl 0x100384aa
cmp esi, dword [esp + ecx*4 + 0x94]
jg 0x100384aa
cmp eax, dword [esp + ecx*4 + 0x6c]
jl 0x100384aa
cmp eax, dword [esp + ecx*4 + 0x44]
jg 0x100384aa
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
push ebx
pop ebx
jmp 0x100384aa
cmp edx, dword [esp + ecx*4 + 0xe4]
jl 0x100384aa
cmp edx, dword [esp + ecx*4 + 0x10c]
jg 0x100384aa
cmp esi, dword [esp + ecx*4 + 0xbc]
jl 0x100384aa
cmp esi, dword [esp + ecx*4 + 0x94]
jg 0x100384aa
cmp eax, dword [esp + ecx*4 + 0x6c]
jl 0x100384aa
cmp eax, dword [esp + ecx*4 + 0x44]
jg 0x100384aa
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
test bh, bh
mov ebx, dword [esp + 0x24]
add ecx, 1
cmp ecx, dword [esp + 0x20]
jl 0x100383c0
jmp 0x100386e6
cmp dword [esp + 0x40], 0
je 0x100385b7
push ecx
pop ecx
xor esi, esi
cmp dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
jle 0x100386e6
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
lea esp, [esp]
test bh, bh
test al, al
test edx, edx
jne 0x10038506
mov edx, dword [eax + 8]
imul edx, edi
add edx, dword [ecx]
cmp byte [edx + ebp], 1
jmp 0x10038512
mov eax, dword [eax + 8]
imul eax, edi
add eax, dword [ecx]
cmp byte [eax + ebp], 0
je 0x100386e6
movzx edx, byte [ebx + 1]
mov ah, ah
movzx ecx, byte [ebx]
mov ecx, ecx
mov eax, dword [ebx - 1]
and eax, 0xff
mov ebx, ebx
add ecx, eax
add ecx, edx
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ah, ah
mov edx, dword [esp + 0x34]
test edx, edx
jne 0x10038571
cmp eax, dword [esp + esi*4 + 0x44]
jl 0x10038599
cmp eax, dword [esp + esi*4 + 0x6c]
jg 0x10038599
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 al, al
mov esi, dword [esp + 0x24]
jmp 0x100385a1
cmp eax, dword [esp + esi*4 + 0x44]
jl 0x10038599
cmp eax, dword [esp + esi*4 + 0x6c]
jg 0x10038599
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 ebp, ebp
mov esi, dword [esp + 0x24]
jmp 0x100385a1
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
add esi, 1
cmp esi, dword [esp + 0x20]
mov dword [esp + 0x24], esi
jl 0x100384f0
jmp 0x100386e6
test al, al
xor esi, esi
cmp dword [esp + 0x20], esi
jle 0x100386e6
nop
mov ebx, ebx
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 0x100385e5
cmp byte [edx + ebp], 1
jmp 0x100385e9
cmp byte [edx + ebp], 0
je 0x100386e6
movzx ecx, byte [ebx + 1]
xchg ebx, eax
xchg ebx, eax
movzx edx, byte [ebx]
mov cl, cl
mov eax, dword [ebx - 1]
and eax, 0xff
test dh, dh
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 dl, dl
cmp dword [esp + 0x34], 0
mov eax, dword [esp + 0x28]
jne 0x10038687
cmp eax, dword [esp + esi*4 + 0x6c]
jl 0x100386d5
cmp eax, dword [esp + esi*4 + 0x44]
jg 0x100386d5
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + esi*4 + 0x94]
jl 0x100386d5
cmp eax, dword [esp + esi*4 + 0xbc]
jg 0x100386d5
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + esi*4 + 0x10c]
jl 0x100386d5
cmp eax, dword [esp + esi*4 + 0xe4]
jg 0x100386d5
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
test edx, edx
jmp 0x100386d5
cmp eax, dword [esp + esi*4 + 0x6c]
jl 0x100386d5
cmp eax, dword [esp + esi*4 + 0x44]
jg 0x100386d5
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + esi*4 + 0x94]
jl 0x100386d5
cmp eax, dword [esp + esi*4 + 0xbc]
jg 0x100386d5
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + esi*4 + 0x10c]
jl 0x100386d5
cmp eax, dword [esp + esi*4 + 0xe4]
jg 0x100386d5
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 dh, dh
mov ebx, dword [esp + 0x24]
add esi, 1
cmp esi, dword [esp + 0x20]
jl 0x100385c5
mov ecx, dword [esp + 0x2c]
add edi, 1
add ebx, 4
cmp edi, dword [ecx + 4]
mov dword [esp + 0x24], ebx
jl 0x100383a3
mov edx, dword [esp + 0x160]
mov eax, dword [esp + 0x2c]
add dword [esp + 0x134], edx
add ebp, 1
cmp ebp, dword [eax + 8]
jl 0x10038387
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.100f3efb
add esp, 4
push edx
pop edx
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