Function at 0x13fab90
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xbc
push ebx
mov ebx, edx
mov dword [esp + 0x10], ecx
mov edx, dword [ecx + 0xc]
push esi
push edi
movzx eax, word [ebx]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], edx
cmp ax, 0x40
jle 0x13fabd2
push 0x40
push 0xdd448c
push ecx
call fcn.013b6680
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ecx]
mov dword [esp + 0x34], esi
movsx esi, ax
mov eax, dword [esp + 0x34]
shl esi, 6
add esi, 0x27
and esi, 0xfffffff8
lea edi, [esi + 0x264]
test eax, eax
je 0x13fac5b
add eax, 0x1e
mov dword [esp + 0x40], eax
cmp byte [eax], 0
je 0x13fac09
xor edi, edi
mov dword [esp + 0x14], edi
jmp 0x13faca5
mov edx, dword [esp + 0x34]
cmp byte [edx + 0xe2], 0
je 0x13fac5b
movzx eax, word [edx + 0xe0]
cmp edi, eax
jg 0x13fac5b
mov ecx, dword [edx + 0xec]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x13fac5b
mov eax, dword [ecx]
mov dword [edx + 0xec], eax
mov eax, dword [edx + 0xe4]
inc eax
mov dword [edx + 0xe4], eax
cmp eax, dword [edx + 0xe8]
jle 0x13fac52
mov dword [edx + 0xe8], eax
lea eax, [edx + 0x1e]
mov dword [esp + 0x40], eax
jmp 0x13fac85
push edi
call fcn.013b42e0
mov ecx, eax
add esp, 4
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x13fac7a
test eax, eax
je 0x13fac7a
mov byte [eax + 0x1e], 1
add eax, 0x1e
mov dword [esp + 0x40], eax
test ecx, ecx
je 0x13fac99
push edi
push 0
push ecx
call fcn.01405710
mov eax, dword [esp + 0x4c]
add esp, 0xc
mov dword [esp + 0x40], eax
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp byte [eax], 0
jne 0x13fb190
movsx eax, word [ebx]
mov dword [edi], ecx
mov ecx, edx
mov dword [edi + 0x18], eax
mov dword [edi + 8], ebx
call fcn.013c4830
mov ecx, dword [ebp + 0x10]
mov dword [edi + 0x14], eax
add edi, esi
mov eax, dword [esp + 0x14]
push 0x104
push 0
lea esi, [edi + 0x160]
mov dword [esp + 0x40], edi
push esi
mov dword [eax + 0x1c], edi
mov word [eax + 4], cx
mov dword [esp + 0x60], esi
call fcn.01405710
mov ecx, dword [esp + 0x24]
lea eax, [edi + 0x20]
add esp, 0xc
mov dword [edi + 4], esi
mov esi, dword [ebp + 8]
mov edx, esi
mov dword [edi], ecx
mov dword [esp + 0x70], ecx
lea ecx, [esp + 0x68]
mov dword [edi + 0x14], 0
mov dword [edi + 0x18], 8
mov dword [edi + 0x1c], eax
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov dword [esp + 0x68], 0xd60330
mov dword [esp + 0x6c], 0
call fcn.013ce670
mov byte [edi + 0x10], 0x45
test esi, esi
je 0x13fadbb
cmp byte [esi], 0x45
mov ecx, edi
je 0x13fad58
push 0
mov edx, esi
call fcn.013f6190
jmp 0x13fad71
mov edx, dword [esi + 8]
push 0x45
call fcn.013f63a0
mov edx, dword [esi + 0xc]
add esp, 4
mov ecx, edi
push 0x45
call fcn.013f63a0
add esp, 4
cmp word [ebx], 0
je 0x13fada4
mov edx, esi
mov dword [esp + 0x74], 3
lea ecx, [esp + 0x68]
mov dword [esp + 0x68], 0xd5c6c0
mov dword [esp + 0x6c], 0xd5c7a0
call fcn.013ce670
cmp dword [esp + 0x74], 0
je 0x13fadbb
mov eax, dword [esp + 0x14]
mov edx, esi
mov ecx, dword [esp + 0x18]
push 8
push dword [eax + 0x14]
call fcn.013d6290
add esp, 8
mov edx, ebx
xor eax, eax
xor esi, esi
cmp ax, word [edx]
jge 0x13fae12
mov ebx, dword [esp + 0x54]
lea edi, [edx + 0x14]
lea ecx, [ecx]
mov ecx, dword [ebx]
mov eax, dword [edi + 0xc]
mov dword [ebx + ecx*4 + 4], eax
inc dword [ebx]
mov eax, dword [edi]
test eax, eax
je 0x13fae03
test byte [eax + 0x22], 0x10
je 0x13fae03
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.01428ce0
mov ecx, dword [esp + 0x38]
or dword [ecx + 8], eax
or dword [ecx + 0xc], edx
mov edx, dword [esp + 0x10]
movsx eax, word [edx]
inc esi
add edi, 0x38
cmp esi, eax
jl 0x13fadd0
mov edi, dword [esp + 0x38]
mov esi, dword [edi + 0x14]
sub esi, 1
js 0x13fae34
mov ebx, dword [esp + 0x10]
mov edi, edi
push esi
mov edx, edi
mov ecx, ebx
call fcn.013f7320
add esp, 4
sub esi, 1
jns 0x13fae20
mov edx, ebx
mov eax, dword [esp + 0x40]
cmp byte [eax], 0
jne 0x13fb190
mov eax, dword [esp + 0x14]
xor ecx, ecx
add eax, 0x20
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0x30], eax
or esi, 0xffffffff
mov dword [esp + 0x20], eax
or edi, 0xffffffff
xor eax, eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x64], ecx
cmp ax, word [edx]
jge 0x13fb1a6
fld qword [0xdd4a50]
or eax, 0xffffffff
fst qword [esp + 0x68]
mov ebx, 1
mov dword [esp + 0x50], eax
fstp qword [esp + 0x88]
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x48], ebx
test eax, eax
jns 0x13fb08a
test ebx, ebx
je 0x13faee0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
jmp 0x13faee8
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], edi
lea eax, [ecx*8]
mov ebx, ecx
sub eax, ecx
inc eax
lea edi, [edx + eax*8]
movsx eax, word [edx]
mov dword [esp + 0x24], edi
cmp ecx, eax
jge 0x13fb071
mov esi, dword [esp + 0x14]
mov eax, ecx
add esi, 0x5c
shl eax, 6
add eax, esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x60], eax
lea esp, [esp]
mov al, byte [edi + 0x15]
and al, 0xa
mov byte [esp + 0x2b], al
cmp ebx, ecx
je 0x13faf35
test al, al
jne 0x13fb071
mov eax, dword [esp + 0x54]
xor ecx, ecx
mov edx, dword [eax]
test edx, edx
jle 0x13faf57
mov esi, dword [edi + 0x18]
add eax, 4
cmp dword [eax], esi
je 0x13faf7b
inc ecx
add eax, 4
cmp ecx, edx
jl 0x13faf47
mov esi, dword [esp + 0x2c]
xor eax, eax
xor edx, edx
and edx, dword [esp + 0x4c]
and eax, esi
or eax, edx
jne 0x13faf8d
mov ecx, dword [esp + 0x3c]
cmp ebx, ecx
jne 0x13fb04f
inc ecx
mov dword [esp + 0x3c], ecx
jmp 0x13fb04f
mov eax, 1
xor edx, edx
call fcn.01428ce0
mov esi, dword [esp + 0x2c]
jmp 0x13faf5b
cmp dword [esp + 0x64], 0
jne 0x13faf9f
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x13faf9f
mov ecx, dword [eax]
jmp 0x13fafa1
xor ecx, ecx
mov eax, dword [edi + 0xc]
mov edx, dword [esp + 0x38]
test byte [eax + 0x22], 0x10
lea eax, [esp + 0xa0]
je 0x13fafd2
push dword [esp + 0x60]
push eax
push ecx
push dword [esp + 0x64]
mov ecx, dword [esp + 0x28]
push dword [esp + 0x6c]
push edi
call fcn.013f82e0
add esp, 0x18
jmp 0x13fafe9
push eax
push ecx
push dword [esp + 0x60]
mov ecx, dword [esp + 0x24]
push dword [esp + 0x68]
push edi
call fcn.013f8610
add esp, 0x14
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0xc4]
and ecx, esi
and eax, dword [esp + 0x4c]
or ecx, eax
mov ecx, dword [esp + 0x3c]
jne 0x13fb048
cmp ebx, ecx
je 0x13fb01b
fld qword [esp + 0x68]
fcomp qword [esp + 0xb0]
fnstsw ax
test ah, 0x41
jne 0x13fb048
mov ecx, 0xa
mov dword [esp + 0x50], ebx
lea esi, [esp + 0xa0]
lea edi, [esp + 0x78]
rep movsd dword es:[edi], dword [esi]
fld qword [esp + 0x88]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
fstp qword [esp + 0x68]
cmp byte [esp + 0x2b], 0
jne 0x13fb06d
mov edx, dword [esp + 0x10]
inc ebx
add dword [esp + 0x60], 0x40
add edi, 0x38
mov dword [esp + 0x24], edi
movsx eax, word [edx]
cmp ebx, eax
jl 0x13faf20
jmp 0x13fb071
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
sub ebx, 1
mov eax, dword [esp + 0x50]
mov dword [esp + 0x48], ebx
jns 0x13faec2
mov ebx, dword [esp + 0x78]
test ebx, 0x1000000
je 0x13fb09f
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x7c]
and dword [esp + 0x44], ebx
mov dword [edx], ebx
mov dword [edx + 4], eax
mov eax, dword [esp + 0x80]
mov dword [edx + 8], eax
and ebx, 0xf0000
je 0x13fb0d1
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x44]
mov dword [edx + 0x14], eax
inc dword [ecx + 0x44]
jmp 0x13fb0d8
mov dword [edx + 0x14], 0xffffffff
mov eax, dword [esp + 0x38]
xor ecx, ecx
mov edx, dword [eax + 0x160]
mov eax, dword [esp + 0x50]
lea esi, [eax*8]
sub esi, eax
shl esi, 3
test edx, edx
jle 0x13fb11c
mov eax, dword [esp + 0x10]
mov edi, dword [esi + eax + 0x20]
mov eax, dword [esp + 0x38]
add eax, 0x164
lea esp, [esp]
cmp dword [eax], edi
je 0x13fb16f
inc ecx
add eax, 4
cmp ecx, edx
jl 0x13fb110
xor eax, eax
xor edx, edx
mov edi, dword [esp + 0x4c]
not edx
mov ecx, dword [esp + 0x20]
and edi, edx
mov edx, dword [esp + 0x10]
not eax
and dword [esp + 0x2c], eax
mov eax, dword [esp + 0x50]
mov byte [ecx + 0x28], al
mov eax, dword [esi + edx + 0x3c]
mov dword [esp + 0x4c], edi
test eax, eax
je 0x13fb14d
test ebx, ebx
je 0x13fb17d
mov ecx, dword [esp + 0x64]
movsx eax, word [edx]
inc ecx
add dword [esp + 0x20], 0x40
mov dword [esp + 0x64], ecx
cmp ecx, eax
jge 0x13fb1a6
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
jmp 0x13fae7b
mov eax, 1
xor edx, edx
call fcn.01428ce0
jmp 0x13fb120
push dword [eax]
push 0xdd44a8
push dword [esp + 0x20]
call fcn.013b6680
add esp, 0xc
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
call fcn.013faab0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x18]
cmp dword [ebx + 0x40], 0
jne 0x13fb190
mov eax, dword [esp + 0x40]
cmp byte [eax], 0
jne 0x13fb190
mov eax, dword [esp + 0x44]
and eax, 0x4000000
mov dword [esp + 0x44], eax
je 0x13fb1d9
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x13fb1d5
mov dword [eax], 0
mov eax, dword [esp + 0x44]
test byte [ebp + 0x10], 4
je 0x13fb1f5
test eax, eax
je 0x13fb1f5
mov eax, dword [esp + 0x14]
mov byte [eax + 6], 1
mov eax, dword [esp + 0x30]
and dword [eax], 0xff7fffff
cmp dword [ebx + 0x15c], 0
jne 0x13fb270
mov esi, dword [ebx + 0xc]
test esi, esi
jne 0x13fb215
mov ecx, dword [ebx]
call fcn.013c4610
mov esi, eax
mov dword [ebx + 0xc], esi
test esi, esi
je 0x13fb270
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x13fb22f
mov ecx, esi
call fcn.013c46d0
test eax, eax
je 0x13fb22f
mov edi, 1
jmp 0x13fb267
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 1
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
lea eax, [edi + 1]
mov dword [ebx + 0x15c], eax
mov edx, dword [esp + 0x10]
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x48], ebx
cmp ax, word [edx]
jge 0x13fb52b
jmp 0x13fb290
mov eax, dword [esp + 0x30]
mov edi, 0xfff0bdc0
movzx eax, byte [eax + 0x28]
lea ecx, [eax*8]
sub ecx, eax
mov dword [esp + 0x20], ecx
mov esi, dword [edx + ecx*8 + 0x14]
mov edx, dword [esi + 0x40]
test edx, edx
je 0x13fb2d8
mov eax, dword [esp + 0x34]
xor edi, edi
mov ecx, dword [eax + 4]
test ecx, ecx
jle 0x13fb2d4
mov eax, dword [eax + 8]
add eax, 0xc
cmp dword [eax], edx
je 0x13fb2d4
inc edi
add eax, 0x10
cmp edi, ecx
jl 0x13fb2c8
mov ecx, dword [esp + 0x20]
test byte [esi + 0x22], 2
jne 0x13fb512
cmp dword [esi + 0x1c], 0
jne 0x13fb512
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
test eax, 0x8000000
je 0x13fb3a3
mov esi, dword [esi + 0x30]
test esi, esi
je 0x13fb313
mov eax, dword [esp + 0x34]
cmp dword [esi], eax
je 0x13fb313
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x13fb308
mov eax, dword [esp + 0x10]
mov eax, dword [eax + ecx*8 + 0x20]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + 0xc]
cmp dword [eax + 0x10], ebx
jg 0x13fb355
mov ecx, eax
call fcn.013c46d0
test eax, eax
je 0x13fb351
mov ecx, dword [esp + 0x1c]
mov ebx, 1
push 0xfffffffffffffff6
push esi
mov edx, ebx
call fcn.013c4d30
add esp, 8
jmp 0x13fb457
mov eax, dword [esp + 0x1c]
inc dword [eax + 0xc]
lea ecx, [ebx + ebx*4]
mov eax, dword [eax + 0x14]
mov edx, dword [esp + 0x24]
push 0xfffffffffffffff6
push esi
mov dword [eax + ecx*4 + 4], edx
mov edx, ebx
mov word [eax + ecx*4], 0x7c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x24]
mov byte [ecx + 0x6e], 0
call fcn.013c4d30
add esp, 8
jmp 0x13fb457
test eax, 0x800000
jne 0x13fb457
test byte [ebp + 0x10], 0x10
jne 0x13fb457
mov ebx, dword [esp + 0x14]
xor eax, eax
cmp byte [ebx + 6], al
setne al
add eax, 0x26
push eax
mov eax, dword [esp + 0x14]
push esi
push edi
mov edx, dword [eax + ecx*8 + 0x20]
mov ecx, dword [esp + 0x24]
call fcn.013e1bd0
add esp, 0xc
cmp byte [ebx + 6], 0
jne 0x13fb457
cmp dword [esi + 0xc], 0x40
jge 0x13fb457
mov eax, dword [esp + 0x20]
xor ebx, ebx
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + eax*8 + 0x30]
mov ecx, dword [ecx + eax*8 + 0x34]
mov eax, edx
or eax, ecx
je 0x13fb40f
shrd edx, ecx, 1
inc ebx
shr ecx, 1
mov eax, edx
or eax, ecx
jne 0x13fb402
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x24], eax
test eax, eax
je 0x13fb449
cmp byte [ecx + 0x1e], 0
jne 0x13fb449
lea esi, [edx + edx*4]
push dword [eax + esi*4 - 4]
movsx edx, byte [eax + esi*4 - 0x13]
call fcn.013c49d0
mov eax, dword [esp + 0x28]
mov dword [eax + esi*4 - 4], ebx
mov byte [eax + esi*4 - 0x13], 0xf2
jmp 0x13fb454
push ebx
mov edx, 0xfffffff2
call fcn.013c49d0
add esp, 4
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
test dword [ecx], 0xf0000
mov eax, dword [ebx + eax*8 + 0x20]
mov dword [ecx + 0x10], eax
je 0x13fb503
mov esi, dword [ecx + 8]
mov edx, esi
mov ecx, dword [esp + 0x18]
call fcn.013ddc90
mov ebx, eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 0xc]
cmp dword [eax + 0x10], esi
jg 0x13fb4be
mov ecx, eax
call fcn.013c46d0
test eax, eax
je 0x13fb4ba
mov ecx, dword [esp + 0x1c]
mov esi, 1
jmp 0x13fb4f6
mov eax, dword [esp + 0x1c]
inc dword [eax + 0xc]
lea ecx, [esi + esi*4]
mov eax, dword [eax + 0x14]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x54]
mov word [eax + ecx*4], 0x26
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x1c]
mov byte [ecx + 0x6e], 0
push 0xfffffffffffffff0
push ebx
mov edx, esi
call fcn.013c4d30
add esp, 8
mov ecx, dword [esp + 0x18]
mov edx, edi
call fcn.013ddb30
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x10]
inc ebx
add dword [esp + 0x30], 0x40
mov dword [esp + 0x48], ebx
movsx eax, word [edx]
cmp ebx, eax
jl 0x13fb290
mov eax, dword [esp + 0x1c]
xor edi, edi
mov ecx, dword [esp + 0x14]
or edx, 0xffffffff
mov ebx, dword [esp + 0x10]
xor esi, esi
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
or eax, 0xffffffff
cmp di, word [ebx]
jge 0x13fb57c
lea edi, [ecx + 0x40]
nop
push edx
push eax
push dword [ebp + 0x10]
mov edx, esi
call fcn.013f9320
mov ebx, dword [esp + 0x20]
lea edi, [edi + 0x40]
mov ecx, dword [edi - 0x40]
inc esi
add esp, 0xc
mov dword [ebx + 0x10], ecx
mov ebx, dword [esp + 0x10]
movsx ecx, word [ebx]
cmp esi, ecx
mov ecx, dword [esp + 0x14]
jl 0x13fb550
pop edi
pop esi
mov eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret