Function at 0x1014d730
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x7c
mov eax, dword [0x102d94c0]
xor eax, esp
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x84]
xor edx, edx
push ebx
mov ebx, dword [esp + 0x8c]
push ebp
mov ebp, dword [esp + 0x94]
push esi
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x9c]
push edi
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x160]
push edx
push dword [ebp]
mov dword [esp + 0x44], esi
lea edi, [eax + 0x14]
mov dword [esp + 0x54], ebp
push edi
push esi
mov dword [esp + 0x58], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x34], edx
call fcn.1014b490
add esp, 0x10
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1014d7f5
push dword [ebp]
mov eax, dword [esp + 0x4c]
add eax, 0x50
push eax
call fcn.1014c410
add esp, 8
test eax, eax
je 0x1014d85d
push 0x18
push eax
push edi
push esi
call fcn.1014b490
add esp, 0x10
mov dword [esp + 0x20], eax
test eax, eax
je 0x1014d85d
cmp byte [esi + 0xe8], 0
je 0x1014d7f5
push eax
push esi
call fcn.1014d160
add esp, 8
test eax, eax
je 0x1014d85d
mov eax, dword [esp + 0x20]
push dword [esi + 0x184]
mov ebp, dword [eax + 0xc]
push dword [esi + 0x178]
mov eax, dword [esp + 0x1c]
push ebx
push eax
mov dword [esp + 0x44], ebp
mov eax, dword [eax + 0x24]
call eax
mov ecx, 0x7fffffff
mov edx, eax
sub ecx, ebp
mov dword [esp + 0x40], edx
add esp, 0x10
cmp edx, ecx
jg 0x1014d85d
mov edi, dword [esi + 0x178]
lea ecx, [edx + ebp]
cmp ecx, edi
jle 0x1014d8af
cmp ebp, 0x7fffffef
jg 0x1014d85d
mov eax, 0x7fffffef
sub eax, ebp
cmp edx, eax
jg 0x1014d85d
lea eax, [ecx + 0x10]
mov dword [esi + 0x178], eax
cmp eax, 0xfffffff
jbe 0x1014d875
mov dword [esi + 0x178], edi
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.101f469d
add esp, 0x7c
ret
shl eax, 4
push eax
push dword [esi + 0x184]
mov eax, dword [esi + 0x10]
call eax
add esp, 8
test eax, eax
je 0x1014d857
mov edx, dword [esp + 0x30]
mov dword [esi + 0x184], eax
cmp edx, edi
jle 0x1014d8af
push eax
push edx
push ebx
mov ebx, dword [esp + 0x20]
push ebx
mov eax, dword [ebx + 0x24]
call eax
mov edx, dword [esp + 0x40]
add esp, 0x10
jmp 0x1014d8b3
mov ebx, dword [esp + 0x14]
mov edi, dword [esi + 0x184]
xor ebp, ebp
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], ebp
test edx, edx
jle 0x1014dad2
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x2c], ecx
mov eax, dword [esi + 0x184]
mov dword [esp + 0x40], edx
mov edi, dword [eax + ecx]
mov eax, dword [ebx + 0x1c]
push edi
push ebx
call eax
add eax, edi
push eax
push edi
push ebx
push esi
call fcn.1014aa30
mov ebx, eax
add esp, 0x18
test ebx, ebx
je 0x1014d85d
mov eax, dword [ebx]
cmp byte [eax - 1], 0
jne 0x1014da9d
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x2c]
mov byte [eax - 1], 1
mov eax, dword [ebx]
mov dword [ecx + edi*4], eax
inc edi
add ebp, dword [esi + 0x184]
mov dword [esp + 0x10], edi
cmp byte [ebp + 0xc], 0
jne 0x1014d9b3
cmp byte [ebx + 8], 0
mov byte [esp + 0x38], 1
je 0x1014d970
mov edi, dword [esp + 0x34]
xor ecx, ecx
test edi, edi
jle 0x1014d96c
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x14]
mov eax, edx
cmp ebx, dword [eax]
je 0x1014d961
inc ecx
add eax, 0xc
cmp ecx, edi
jl 0x1014d953
jmp 0x1014d96c
lea eax, [ecx + ecx*2]
mov al, byte [edx + eax*4 + 4]
mov byte [esp + 0x38], al
mov edi, dword [esp + 0x10]
push dword [esp + 0xa4]
lea eax, [esi + 0x19c]
push eax
push dword [ebp + 8]
mov eax, dword [esp + 0x20]
push dword [ebp + 4]
push dword [esp + 0x48]
push eax
push esi
call fcn.1014d6c0
add esp, 0x1c
test eax, eax
jne 0x1014d862
mov eax, dword [esp + 0x18]
lea ecx, [eax + edi*4]
mov eax, dword [esi + 0x1ac]
mov edi, dword [esp + 0x18]
mov dword [ecx], eax
jmp 0x1014da10
push dword [ebp + 8]
mov eax, dword [esp + 0x18]
lea edi, [esi + 0x19c]
push dword [ebp + 4]
push eax
push edi
call fcn.1014bff0
add esp, 0x10
test eax, eax
je 0x1014da89
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jne 0x1014d9ee
push edi
call fcn.1014c5d0
add esp, 4
test al, al
je 0x1014da89
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x10]
mov byte [eax], 0
inc dword [edi + 0xc]
mov eax, dword [edi + 0x10]
mov edi, dword [esp + 0x18]
mov dword [edi + ecx*4], eax
lea ecx, [edi + ecx*4]
test eax, eax
je 0x1014d85d
mov eax, dword [esi + 0x1a8]
mov dword [esi + 0x1ac], eax
mov eax, dword [ebx + 4]
test eax, eax
je 0x1014da5b
cmp byte [ebx + 9], 0
je 0x1014da48
push dword [esp + 0x44]
push dword [ecx]
push ebx
push eax
push esi
call fcn.10146b30
add esp, 0x14
test eax, eax
jne 0x1014d862
mov edx, dword [esp + 0x40]
jmp 0x1014da62
mov eax, dword [ebx]
mov edx, dword [esp + 0x40]
add edx, 2
inc dword [esp + 0x24]
mov byte [eax - 1], 2
jmp 0x1014da62
mov edx, dword [esp + 0x40]
add edx, 2
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
inc ebp
add ecx, 0x10
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x2c], ecx
cmp ebp, dword [esp + 0x30]
jge 0x1014dad2
mov ebx, dword [esp + 0x14]
jmp 0x1014d8d3
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov dword [eax + ecx*4], 0
jmp 0x1014d85d
mov eax, dword [esp + 0x14]
cmp eax, dword [esi + 0x90]
jne 0x1014daba
mov eax, dword [esi + 0x184]
add ebp, ebp
mov eax, dword [eax + ebp*8]
mov dword [esi + 0x11c], eax
pop edi
pop esi
pop ebp
mov eax, 8
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.101f469d
add esp, 0x7c
ret
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
mov dword [esi + 0x17c], ebx
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x1014db7f
mov ecx, dword [ecx]
cmp byte [ecx - 1], 0
je 0x1014db7f
xor eax, eax
test ebx, ebx
jle 0x1014db0c
nop dword [eax]
cmp dword [edi + eax*4], ecx
je 0x1014db77
add eax, 2
cmp eax, ebx
jl 0x1014db00
mov eax, dword [esp + 0x20]
xor edi, edi
cmp dword [esp + 0x34], edi
jle 0x1014dbd5
xor ebp, ebp
nop
mov ecx, dword [eax + 0x14]
mov eax, dword [ecx + ebp]
add ecx, ebp
mov edx, dword [eax]
cmp byte [edx - 1], 0
jne 0x1014db67
mov ebx, dword [ecx + 8]
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x1014db63
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x1014dbb2
cmp byte [eax + 9], 0
je 0x1014db8b
push dword [esp + 0x44]
push dword [esp + 0x20]
push eax
push ebx
push esi
call fcn.10146b30
add esp, 0x14
test eax, eax
jne 0x1014d862
mov ebx, dword [esp + 0x10]
inc edi
add ebp, 0xc
cmp edi, dword [esp + 0x34]
jge 0x1014dbd5
mov eax, dword [esp + 0x20]
jmp 0x1014db20
mov dword [esi + 0x180], eax
jmp 0x1014db0c
mov dword [esi + 0x180], 0xffffffff
jmp 0x1014db10
mov ebx, dword [esp + 0x10]
inc dword [esp + 0x24]
mov byte [edx - 1], 2
mov eax, dword [ecx]
mov edx, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [edx + ebx*4], eax
mov eax, dword [ecx + 8]
mov dword [edx + ebx*4 + 4], eax
add ebx, 2
mov dword [esp + 0x10], ebx
jmp 0x1014db67
mov ebx, dword [esp + 0x10]
mov byte [edx - 1], 1
mov eax, dword [ecx]
mov edx, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [edx + ebx*4], eax
mov eax, dword [ecx + 8]
mov dword [edx + ebx*4 + 4], eax
add ebx, 2
mov dword [esp + 0x10], ebx
jmp 0x1014db67
mov eax, dword [esp + 0x18]
xor edi, edi
mov dword [esp + 0x2c], edi
mov dword [eax + ebx*4], 0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x1014e058
mov bl, byte [esi + 0x190]
mov edx, dword [esi + 0x18c]
cmp bl, 0x20
jae 0x1014d85d
movzx ecx, bl
add eax, eax
mov ebp, 1
sar eax, cl
shl ebp, cl
mov dword [esp + 0x34], ebp
test eax, eax
je 0x1014dc8b
mov edx, dword [esp + 0x24]
mov cl, bl
mov eax, edx
sar eax, cl
inc cl
test eax, eax
jne 0x1014dc23
mov byte [esi + 0x190], cl
cmp cl, 3
jae 0x1014dc7b
mov byte [esi + 0x190], 3
mov cl, 3
mov ebp, 1
shl ebp, cl
mov dword [esp + 0x34], ebp
cmp ebp, 0x15555555
ja 0x1014dc80
lea eax, [ebp*2]
add eax, ebp
shl eax, 2
push eax
push dword [esi + 0x188]
mov eax, dword [esi + 0x10]
call eax
add esp, 8
test eax, eax
je 0x1014dc80
mov dword [esi + 0x188], eax
jmp 0x1014dc8f
cmp cl, 0x20
jb 0x1014dc41
mov byte [esi + 0x190], bl
jmp 0x1014d85d
test edx, edx
jne 0x1014dcce
mov dword [esp + 0x14], 0xffffffff
mov edx, ebp
test ebp, ebp
je 0x1014dccb
lea ecx, [ebp*2]
add ecx, ebp
shl ecx, 2
nop dword [eax]
mov eax, dword [esi + 0x188]
lea ecx, [ecx - 0xc]
mov dword [ecx + eax], 0xffffffff
sub edx, 1
jne 0x1014dcb0
mov edx, dword [esp + 0x14]
jmp 0x1014dcce
or edx, 0xffffffff
mov eax, dword [esp + 0x10]
dec edx
mov dword [esp + 0x14], edx
mov dword [esi + 0x18c], edx
test eax, eax
jle 0x1014e072
mov ecx, dword [esp + 0x18]
nop dword [eax]
mov edi, dword [ecx + edi*4]
cmp byte [edi - 1], 2
jne 0x1014e038
mov eax, dword [esi + 0x1d8]
test eax, eax
je 0x1014dd14
push eax
call fcn.1014b060
add esp, 4
mov ebx, eax
jmp 0x1014dd1a
mov ebx, dword [esi + 0x1ec]
xor edx, edx
mov dword [esp + 0x50], 0x70736575
mov eax, edx
mov dword [esp + 0x54], 0x736f6d65
xor eax, 0x646f7261
mov dword [esp + 0x60], 0x6e657261
mov dword [esp + 0x5c], eax
mov ecx, ebx
lea eax, [esp + 0x70]
mov dword [esp + 0x64], 0x6c796765
mov dword [esp + 0x78], eax
xor ecx, 0x6e646f6d
mov eax, dword [esp + 0x48]
xor edx, 0x74656462
push 0
push edi
add eax, 0x28
mov dword [esp + 0x60], ecx
push eax
xorps xmm0, xmm0
mov dword [esp + 0x78], edx
xor ebx, 0x79746573
movlpd qword [esp + 0x8c], xmm0
push esi
mov dword [esp + 0x78], ebx
mov byte [edi - 1], 0
call fcn.1014b490
add esp, 0x10
test eax, eax
je 0x1014d85d
mov eax, dword [eax + 4]
test eax, eax
je 0x1014d85d
mov ebp, dword [eax + 4]
mov dword [esp + 0x38], ebp
test ebp, ebp
je 0x1014e0af
mov eax, dword [ebp + 0x14]
xor ebx, ebx
test eax, eax
jle 0x1014de09
nop
mov eax, dword [ebp + 0x10]
mov al, byte [ebx + eax]
mov byte [esp + 0x2b], al
mov eax, dword [esi + 0x1a8]
cmp eax, dword [esi + 0x1a4]
jne 0x1014ddef
lea eax, [esi + 0x19c]
push eax
call fcn.1014c5d0
add esp, 4
test al, al
je 0x1014d85d
mov eax, dword [esi + 0x1a8]
inc ebx
mov cl, byte [esp + 0x2b]
mov byte [eax], cl
inc dword [esi + 0x1a8]
mov eax, dword [ebp + 0x14]
cmp ebx, eax
jl 0x1014ddc0
push eax
push dword [ebp + 0x10]
lea eax, [esp + 0x58]
push eax
call fcn.1014d3b0
add esp, 0xc
nop word [eax + eax]
mov al, byte [edi]
inc edi
cmp al, 0x3a
jne 0x1014de20
xor eax, eax
cmp byte [edi], al
je 0x1014de37
nop dword [eax]
inc eax
cmp byte [eax + edi], 0
jne 0x1014de30
push eax
lea eax, [esp + 0x54]
push edi
push eax
call fcn.1014d3b0
add esp, 0xc
nop word [eax + eax]
mov eax, dword [esi + 0x1a8]
cmp eax, dword [esi + 0x1a4]
jne 0x1014de75
lea eax, [esi + 0x19c]
push eax
call fcn.1014c5d0
add esp, 4
test al, al
je 0x1014d85d
mov ecx, dword [esi + 0x1a8]
mov al, byte [edi]
mov byte [ecx], al
inc dword [esi + 0x1a8]
mov al, byte [edi]
inc edi
test al, al
jne 0x1014de50
lea eax, [esp + 0x50]
push eax
call fcn.1014d240
mov edi, dword [esp + 0x38]
add esp, 4
mov edx, dword [esi + 0x188]
dec edi
mov ebp, edi
mov dword [esp + 0x30], eax
and ebp, eax
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x14]
xor bl, bl
lea ecx, [ebp*2]
add ecx, ebp
cmp dword [edx + ecx*4], eax
jne 0x1014df7b
mov ecx, edx
nop word [eax + eax]
mov edi, dword [esp + 0x30]
lea eax, [ebp*2]
add eax, ebp
cmp edi, dword [ecx + eax*4 + 4]
mov edi, dword [esp + 0x1c]
jne 0x1014df24
mov edx, dword [esi + 0x188]
mov ecx, dword [esi + 0x1ac]
mov edi, dword [edx + eax*4 + 8]
mov al, byte [ecx]
cmp al, byte [edi]
jne 0x1014df12
mov dl, al
sub edi, ecx
mov al, dl
test dl, dl
je 0x1014df12
mov al, byte [ecx + 1]
inc ecx
mov dl, al
cmp al, byte [edi + ecx]
je 0x1014df01
test al, al
je 0x1014daba
mov edx, dword [esi + 0x188]
mov edi, dword [esp + 0x1c]
test bl, bl
jne 0x1014df4a
movzx ecx, byte [esi + 0x190]
mov ebx, edi
mov edx, dword [esi + 0x188]
not ebx
and ebx, dword [esp + 0x30]
dec ecx
mov eax, edi
shr ebx, cl
shr eax, 2
and bl, al
or bl, 1
movzx eax, bl
mov ecx, ebp
sub ecx, eax
cmp ebp, eax
jge 0x1014df5d
mov ebp, dword [esp + 0x34]
add ebp, ecx
jmp 0x1014df5f
mov ebp, ecx
mov ecx, dword [esp + 0x14]
lea eax, [ebp*2]
add eax, ebp
cmp dword [edx + eax*4], ecx
mov ecx, dword [esi + 0x188]
je 0x1014ded0
cmp byte [esi + 0xe9], 0
je 0x1014dfdc
mov ecx, dword [esi + 0x1a8]
mov al, byte [esi + 0x1d4]
mov byte [ecx - 1], al
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov edi, dword [eax]
nop dword [eax + eax]
mov eax, dword [esi + 0x1a8]
cmp eax, dword [esi + 0x1a4]
jne 0x1014dfc5
lea eax, [esi + 0x19c]
push eax
call fcn.1014c5d0
add esp, 4
test al, al
je 0x1014d85d
mov ecx, dword [esi + 0x1a8]
mov al, byte [edi]
mov byte [ecx], al
inc dword [esi + 0x1a8]
mov al, byte [edi]
inc edi
test al, al
jne 0x1014dfa0
mov eax, dword [esi + 0x1a8]
lea ecx, [ebp*2]
mov edx, dword [esi + 0x1ac]
add ecx, ebp
sub dword [esp + 0x24], 1
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
mov dword [esi + 0x1ac], eax
mov eax, dword [esp + 0x18]
mov dword [eax + edi*4], edx
mov eax, dword [esi + 0x188]
mov dword [eax + ecx*4], ebx
mov eax, dword [esi + 0x188]
mov ebx, dword [esp + 0x30]
mov dword [eax + ecx*4 + 4], ebx
mov eax, dword [esi + 0x188]
mov dword [eax + ecx*4 + 8], edx
je 0x1014e051
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
jmp 0x1014e040
mov byte [edi - 1], 0
mov edi, dword [esp + 0x2c]
add edi, 2
mov dword [esp + 0x2c], edi
cmp edi, eax
jl 0x1014dcf0
jmp 0x1014e072
mov ebx, dword [esp + 0x10]
add edi, 2
cmp edi, ebx
jge 0x1014e072
mov esi, dword [esp + 0x18]
mov eax, dword [esi + edi*4]
add edi, 2
mov byte [eax - 1], 0
cmp edi, ebx
jl 0x1014e060
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
test ecx, ecx
je 0x1014e090
nop dword [eax]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax]
mov byte [eax - 1], 0
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x1014e080
cmp byte [esi + 0xe8], 0
je 0x1014e210
mov eax, dword [esp + 0x20]
mov edi, dword [eax + 4]
test edi, edi
je 0x1014e0d9
mov edi, dword [edi + 4]
test edi, edi
jne 0x1014e0c7
pop edi
pop esi
pop ebp
mov eax, 0x1b
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.101f469d
add esp, 0x7c
ret
mov edx, dword [esp + 0x4c]
mov ebx, dword [edx]
nop dword [eax]
mov al, byte [ebx]
inc ebx
cmp al, 0x3a
jne 0x1014e0d0
jmp 0x1014e0f1
mov eax, dword [esp + 0x48]
mov edi, dword [eax + 0x9c]
test edi, edi
je 0x1014e210
mov edx, dword [esp + 0x4c]
mov ebx, dword [edx]
xor ebp, ebp
cmp byte [esi + 0xe9], 0
je 0x1014e10d
mov eax, dword [edi]
mov ecx, dword [eax]
test ecx, ecx
je 0x1014e10d
lea eax, [ecx + ebp]
inc ebp
cmp byte [eax], 0
jne 0x1014e104
mov dword [edx + 4], ebx
xor ecx, ecx
mov eax, dword [edi + 0x14]
mov dword [edx + 0x10], eax
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [edx + 8], eax
mov dword [edx + 0x14], ebp
lea eax, [ebx + ecx]
inc ecx
cmp byte [eax], 0
jne 0x1014e122
mov edx, dword [edi + 0x14]
mov eax, 0x7fffffff
sub eax, ebp
mov dword [esp + 0x38], ecx
cmp edx, eax
jg 0x1014d85d
mov eax, 0x7fffffff
sub eax, edx
sub eax, ebp
cmp ecx, eax
jg 0x1014d85d
lea eax, [edx + ebp]
add eax, ecx
cmp eax, dword [edi + 0x18]
jle 0x1014e1ce
cmp eax, 0x7fffffe7
jg 0x1014d85d
add eax, 0x18
mov dword [esp + 0x3c], eax
push eax
mov eax, dword [esi + 0xc]
call eax
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
je 0x1014d85d
push dword [edi + 0x14]
mov ecx, dword [esp + 0x40]
push dword [edi + 0x10]
mov dword [edi + 0x18], ecx
push eax
call fcn.101f6470
mov ecx, dword [esi + 0x168]
add esp, 0xc
test ecx, ecx
je 0x1014e1b8
mov edx, dword [esp + 0x1c]
mov eax, dword [ecx + 0xc]
cmp eax, dword [edi + 0x10]
jne 0x1014e1b2
mov dword [ecx + 0xc], edx
mov ecx, dword [ecx]
test ecx, ecx
jne 0x1014e1a7
push dword [edi + 0x10]
mov eax, dword [esi + 0x14]
call eax
mov eax, dword [esp + 0x20]
add esp, 4
mov ecx, dword [esp + 0x38]
mov dword [edi + 0x10], eax
mov eax, dword [edi + 0x14]
add eax, dword [edi + 0x10]
push ecx
push ebx
push eax
mov dword [esp + 0x48], eax
call fcn.101f6470
add esp, 0xc
test ebp, ebp
je 0x1014e206
mov ecx, dword [esp + 0x3c]
add ecx, dword [esp + 0x38]
mov al, byte [esi + 0x1d4]
push ebp
mov byte [ecx - 1], al
mov eax, dword [edi]
push dword [eax]
push ecx
call fcn.101f6470
add esp, 0xc
mov ebp, dword [esp + 0x4c]
mov eax, dword [edi + 0x10]
mov dword [ebp], eax
mov ecx, dword [esp + 0x88]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.101f469d
add esp, 0x7c
ret