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

Disassembly:
sub esp, 0x474
mov eax, dword [0x100a501c]
xor eax, esp
mov dword [esp + 0x46c], eax
mov eax, dword [esp + 0x47c]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x484]
mov dword [esp + 0x64], eax
mov dword [esp + 0x70], ecx
xor ebp, ebp
push edi
lea eax, [esp + 0x34]
mov ecx, esi
mov dword [esp + 0x6c], edx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x50], 0xff
call fcn.100131a0
test eax, eax
je 0x10013565
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x34]
xor ecx, ecx
test eax, eax
setg cl
cdq
mov dword [esp + 0x70], ecx
mov ecx, eax
mov eax, dword [esp + 0x3c]
xor ecx, edx
sub ecx, edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x38]
mov dword [esi + 4], ecx
cmp eax, 0xc
jne 0x1001351c
cmp edi, 0x18
jge 0x1001352f
add edx, 0xffffffda
mov eax, 0x55555556
imul edx
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
jmp 0x1001352b
cmp edi, 0x10
jge 0x1001352f
mov ebp, edx
sub ebp, eax
sub ebp, 0xe
sar ebp, 2
mov dword [esp + 0x10], ebp
xor eax, eax
cmp dword [esp + 0x4c], eax
setne al
add eax, 3
mov dword [esi + 8], eax
mov eax, dword [esi]
imul eax, ecx
add eax, eax
add eax, eax
push eax
call dword [sym.imp.MSVCR90.dll_malloc]
mov ebx, eax
add esp, 4
mov dword [esp + 0x14], ebx
test ebx, ebx
jne 0x1001356c
mov dword [0x100a6abc], str.outofmem
xor eax, eax
jmp 0x10013d78
cmp edi, 0x10
jge 0x100138c7
xor edi, edi
test ebp, ebp
je 0x100138ac
cmp ebp, 0x100
jg 0x100138ac
xor ebp, ebp
cmp dword [esp + 0x10], ebp
jle 0x10013687
mov ecx, dword [esi + 0xa8]
cmp ecx, dword [esi + 0xac]
jae 0x100135b0
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
jmp 0x100135ce
cmp dword [esi + 0x20], 0
je 0x100135cc
call fcn.1000b860
mov ecx, dword [esi + 0xa8]
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
jmp 0x100135ce
xor al, al
mov byte [esp + ebp*4 + 0x7a], al
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x100135eb
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x10013609
cmp dword [esi + 0x20], 0
je 0x10013607
call fcn.1000b860
mov eax, dword [esi + 0xa8]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x10013609
xor cl, cl
mov eax, dword [esi + 0xa8]
mov byte [esp + ebp*4 + 0x79], cl
cmp eax, dword [esi + 0xac]
jae 0x10013626
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x10013644
cmp dword [esi + 0x20], 0
je 0x10013642
call fcn.1000b860
mov eax, dword [esi + 0xa8]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x10013644
xor cl, cl
cmp dword [esp + 0x3c], 0xc
mov byte [esp + ebp*4 + 0x78], cl
je 0x10013677
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x10013666
inc eax
mov dword [esi + 0xa8], eax
jmp 0x10013677
cmp dword [esi + 0x20], 0
je 0x10013677
call fcn.1000b860
inc dword [esi + 0xa8]
mov byte [esp + ebp*4 + 0x7b], 0xff
inc ebp
cmp ebp, dword [esp + 0x10]
jl 0x10013597
mov ebp, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
xor ecx, ecx
cmp ebp, 0xc
setne cl
mov eax, esi
add ecx, 3
imul ecx, dword [esp + 0x10]
sub edx, ecx
sub edx, ebp
sub edx, 0xe
call fcn.1000b8a0
mov eax, dword [esp + 0x34]
cmp eax, 4
jne 0x100136bd
mov eax, dword [esi]
inc eax
shr eax, 1
jmp 0x100136c8
cmp eax, 8
jne 0x10013891
mov eax, dword [esi]
neg eax
and eax, 3
cmp dword [esi + 4], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0
jle 0x10013cd0
mov ebp, eax
cmp dword [esi], 0
mov dword [esp + 0x10], 0
jle 0x10013831
jmp 0x10013700
mov ecx, dword [esi + 0xa8]
cmp ecx, dword [esi + 0xac]
jae 0x10013719
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
jmp 0x10013778
cmp dword [esi + 0x20], 0
je 0x10013776
mov edx, dword [esi + 0x24]
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x10]
push edx
lea ebp, [esi + 0x28]
push ebp
push eax
call ecx
add esp, 0xc
mov dword [esi + 0xa8], ebp
test eax, eax
jne 0x1001375d
lea edx, [esi + 0x29]
mov dword [esi + 0x20], eax
mov dword [esi + 0xac], edx
mov byte [ebp], al
mov ecx, dword [esi + 0xa8]
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
jmp 0x10013778
mov ecx, dword [esi + 0xa8]
add ebp, eax
mov dword [esi + 0xac], ebp
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
jmp 0x10013778
xor al, al
xor ecx, ecx
cmp dword [esp + 0x34], 4
movzx eax, al
jne 0x1001378c
mov ecx, eax
and ecx, 0xf
sar eax, 4
movzx edx, byte [esp + eax*4 + 0x78]
mov ebp, dword [esp + 0x10]
mov byte [edi + ebx], dl
movzx edx, byte [esp + eax*4 + 0x79]
mov al, byte [esp + eax*4 + 0x7a]
inc edi
mov byte [edi + ebx], dl
inc edi
mov byte [edi + ebx], al
inc edi
mov byte [edi + ebx], 0xff
lea edx, [ebp + 1]
inc edi
cmp edx, dword [esi]
je 0x1001382d
cmp dword [esp + 0x34], 8
jne 0x100137ff
mov ecx, dword [esi + 0xa8]
cmp ecx, dword [esi + 0xac]
jae 0x100137d9
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
movzx eax, al
jmp 0x10013801
cmp dword [esi + 0x20], 0
je 0x100137f8
call fcn.1000b860
mov ecx, dword [esi + 0xa8]
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
movzx eax, al
jmp 0x10013801
xor al, al
movzx eax, al
jmp 0x10013801
mov eax, ecx
mov cl, byte [esp + eax*4 + 0x78]
mov dl, byte [esp + eax*4 + 0x79]
mov al, byte [esp + eax*4 + 0x7a]
mov byte [edi + ebx], cl
inc edi
mov byte [edi + ebx], dl
inc edi
mov byte [edi + ebx], al
inc edi
mov byte [edi + ebx], 0xff
add ebp, 2
inc edi
cmp ebp, dword [esi]
mov dword [esp + 0x10], ebp
jl 0x10013700
mov ebp, dword [esp + 0x1c]
test ebp, ebp
jge 0x10013843
mov ecx, dword [esi + 0xac]
mov dword [esi + 0xa8], ecx
jmp 0x1001387a
cmp dword [esi + 0x10], 0
je 0x10013874
mov ecx, dword [esi + 0xac]
mov eax, ecx
sub eax, dword [esi + 0xa8]
cmp eax, ebp
jge 0x10013874
mov edx, ebp
sub edx, eax
mov eax, dword [esi + 0x1c]
push edx
mov dword [esi + 0xa8], ecx
mov ecx, dword [esi + 0x14]
push eax
call ecx
add esp, 8
jmp 0x1001387a
add dword [esi + 0xa8], ebp
mov eax, dword [esp + 0x20]
inc eax
cmp eax, dword [esi + 4]
mov dword [esp + 0x20], eax
jl 0x100136e5
jmp 0x10013cd0
push ebx
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
mov dword [0x100a6abc], 0x1006eb04
xor eax, eax
jmp 0x10013d78
push ebx
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
mov dword [0x100a6abc], 0x1006eafc
xor eax, eax
jmp 0x10013d78
mov edx, dword [esp + 0x38]
sub edx, dword [esp + 0x3c]
xor ebp, ebp
sub edx, 0xe
mov eax, esi
mov dword [esp + 0x54], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x24], ebp
call fcn.1000b8a0
mov ecx, dword [esp + 0x34]
cmp ecx, 0x18
jne 0x1001390f
mov eax, dword [esi]
lea eax, [eax + eax*2]
jmp 0x1001391c
cmp ecx, 0x10
jne 0x1001391a
mov eax, dword [esi]
add eax, eax
jmp 0x1001391c
xor eax, eax
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
neg eax
and eax, 3
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x44]
cmp ecx, 0x18
jne 0x10013984
mov dword [esp + 0x24], 1
cmp dword [esi + 4], 0
mov dword [esp + 0x20], 0
jle 0x10013cd0
xor edi, edi
cmp dword [esp + 0x24], edi
je 0x10013b41
cmp dword [esi], edi
jle 0x10013c73
mov ecx, dword [esi + 0xa8]
cmp ecx, dword [esi + 0xac]
jae 0x10013a4c
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
jmp 0x10013a6a
cmp ecx, 0x20
jne 0x100139b4
cmp edi, 0xff
jne 0x100139b4
cmp eax, 0xff00
jne 0x100139b4
cmp edx, 0xff0000
jne 0x100139b4
cmp dword [esp + 0x4c], 0xff000000
jne 0x100139c0
mov dword [esp + 0x24], 2
jmp 0x1001393e
test edx, edx
je 0x10013a31
test eax, eax
je 0x10013a31
test edi, edi
je 0x10013a31
mov ecx, edx
call fcn.10013100
sub eax, 7
mov ecx, edx
mov dword [esp + 0x54], eax
call fcn.10013150
mov edx, dword [esp + 0x44]
mov ecx, edx
mov dword [esp + 0x30], eax
call fcn.10013100
sub eax, 7
mov ecx, edx
mov dword [esp + 0x60], eax
call fcn.10013150
mov ecx, edi
mov dword [esp + 0x28], eax
call fcn.10013100
sub eax, 7
mov ecx, edi
mov dword [esp + 0x64], eax
call fcn.10013150
mov edx, dword [esp + 0x4c]
mov ecx, edx
mov dword [esp + 0x2c], eax
call fcn.10013100
sub eax, 7
mov ecx, edx
mov dword [esp + 0x58], eax
call fcn.10013150
mov dword [esp + 0x5c], eax
jmp 0x1001393e
push ebx
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
mov dword [0x100a6abc], 0x1006eb0c
xor eax, eax
jmp 0x10013d78
cmp dword [esi + 0x20], 0
je 0x10013a68
call fcn.1000b860
mov ecx, dword [esi + 0xa8]
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
jmp 0x10013a6a
xor al, al
mov byte [ebx + ebp + 2], al
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x10013a87
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x10013aa5
cmp dword [esi + 0x20], 0
je 0x10013aa3
call fcn.1000b860
mov eax, dword [esi + 0xa8]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x10013aa5
xor cl, cl
mov byte [ebx + ebp + 1], cl
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x10013ac2
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x10013ae0
cmp dword [esi + 0x20], 0
je 0x10013ade
call fcn.1000b860
mov eax, dword [esi + 0xa8]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x10013ae0
xor cl, cl
mov byte [ebx + ebp], cl
add ebp, 3
cmp dword [esp + 0x24], 2
jne 0x10013b26
mov ecx, dword [esi + 0xa8]
cmp ecx, dword [esi + 0xac]
jae 0x10013b06
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
jmp 0x10013b28
cmp dword [esi + 0x20], 0
je 0x10013b22
call fcn.1000b860
mov ecx, dword [esi + 0xa8]
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
jmp 0x10013b28
xor al, al
jmp 0x10013b28
or al, 0xff
movzx edx, al
or dword [esp + 0x18], edx
mov byte [ebx + ebp], al
inc edi
inc ebp
cmp edi, dword [esi]
jl 0x10013964
jmp 0x10013c73
cmp dword [esi], edi
mov dword [esp + 0x10], edi
jle 0x10013c73
mov eax, esi
call fcn.1000ba10
cmp dword [esp + 0x34], 0x10
jne 0x10013b5f
mov edi, eax
jmp 0x10013b6f
mov ebx, eax
mov eax, esi
call fcn.1000ba10
mov edi, eax
shl edi, 0x10
add edi, ebx
mov ecx, dword [esp + 0x54]
mov edx, edi
and edx, dword [esp + 0x40]
test ecx, ecx
jge 0x10013b83
neg ecx
shl edx, cl
jmp 0x10013b85
sar edx, cl
mov ecx, dword [esp + 0x30]
cmp ecx, 8
mov eax, edx
jge 0x10013b9f
mov ebx, edx
sar ebx, cl
add ecx, dword [esp + 0x30]
add eax, ebx
cmp ecx, 8
jl 0x10013b90
mov ecx, dword [esp + 0x14]
mov byte [ecx + ebp], al
mov ecx, dword [esp + 0x60]
mov edx, edi
and edx, dword [esp + 0x44]
inc ebp
test ecx, ecx
jge 0x10013bbb
neg ecx
shl edx, cl
jmp 0x10013bbd
sar edx, cl
mov ecx, dword [esp + 0x28]
cmp ecx, 8
mov eax, edx
jge 0x10013bd7
mov ebx, edx
sar ebx, cl
add ecx, dword [esp + 0x28]
add eax, ebx
cmp ecx, 8
jl 0x10013bc8
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x64]
mov byte [edx + ebp], al
mov edx, edi
and edx, dword [esp + 0x48]
inc ebp
test ecx, ecx
jge 0x10013bf3
neg ecx
shl edx, cl
jmp 0x10013bf5
sar edx, cl
mov ecx, dword [esp + 0x2c]
cmp ecx, 8
mov eax, edx
jge 0x10013c0f
mov ebx, edx
sar ebx, cl
add ecx, dword [esp + 0x2c]
add eax, ebx
cmp ecx, 8
jl 0x10013c00
mov ebx, dword [esp + 0x14]
mov byte [ebx + ebp], al
mov eax, dword [esp + 0x4c]
inc ebp
test eax, eax
je 0x10013c55
mov ecx, dword [esp + 0x58]
and edi, eax
mov eax, edi
test ecx, ecx
jge 0x10013c31
neg ecx
shl eax, cl
jmp 0x10013c33
sar eax, cl
mov edi, dword [esp + 0x5c]
cmp edi, 8
mov edx, eax
mov ecx, edi
jge 0x10013c51
mov ebx, eax
sar ebx, cl
add ecx, edi
add edx, ebx
cmp ecx, 8
jl 0x10013c40
mov ebx, dword [esp + 0x14]
mov eax, edx
jmp 0x10013c5a
mov eax, 0xff
or dword [esp + 0x18], eax
mov byte [ebx + ebp], al
mov eax, dword [esp + 0x10]
inc eax
inc ebp
cmp eax, dword [esi]
mov dword [esp + 0x10], eax
jl 0x10013b4d
mov edx, dword [esp + 0x1c]
test edx, edx
jge 0x10013c89
mov eax, dword [esi + 0xac]
mov dword [esi + 0xa8], eax
jmp 0x10013cbe
cmp dword [esi + 0x10], 0
je 0x10013cb8
mov ecx, dword [esi + 0xac]
mov eax, ecx
sub eax, dword [esi + 0xa8]
cmp eax, edx
jge 0x10013cb8
sub edx, eax
mov dword [esi + 0xa8], ecx
mov ecx, dword [esi + 0x1c]
push edx
mov edx, dword [esi + 0x14]
push ecx
call edx
add esp, 8
jmp 0x10013cbe
add dword [esi + 0xa8], edx
mov eax, dword [esp + 0x20]
inc eax
cmp eax, dword [esi + 4]
mov dword [esp + 0x20], eax
jl 0x10013950
cmp dword [esp + 0x18], 0
jne 0x10013cfa
mov eax, dword [esi]
imul eax, dword [esi + 4]
lea eax, [eax*4 - 1]
test eax, eax
jl 0x10013cfa
jmp 0x10013cf0
sub eax, 4
mov byte [eax + ebx + 4], 0xff
jns 0x10013cf0
cmp dword [esp + 0x70], 0
je 0x10013d58
xor ebp, ebp
test dword [esi + 4], 0xfffffffe
jle 0x10013d58
lea esp, [esp]
mov ecx, dword [esi]
mov eax, ecx
imul eax, ebp
lea edx, [ebx + eax*4]
mov eax, dword [esi + 4]
sub eax, ebp
dec eax
imul eax, ecx
add ecx, ecx
add ecx, ecx
xor edi, edi
lea eax, [ebx + eax*4]
test ecx, ecx
jle 0x10013d4e
mov ecx, edx
sub ecx, eax
mov dl, byte [ecx + eax]
mov bl, byte [eax]
mov byte [ecx + eax], bl
mov byte [eax], dl
mov edx, dword [esi]
add edx, edx
inc edi
add edx, edx
inc eax
cmp edi, edx
jl 0x10013d34
mov ebx, dword [esp + 0x14]
mov eax, dword [esi + 4]
inc ebp
sar eax, 1
cmp ebp, eax
jl 0x10013d10
mov ecx, dword [esi]
mov edx, dword [esp + 0x68]
mov dword [edx], ecx
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x74]
mov dword [ecx], eax
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x10013d76
mov edx, dword [esi + 8]
mov dword [eax], edx
mov eax, ebx
mov ecx, dword [esp + 0x47c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10062a76
add esp, 0x474
ret