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

Disassembly:
sub esp, 0x38
push ebx
push ebp
push esi
mov esi, dword [esp + 0x48]
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x1c], ebx
push edi
mov dword [esp + 0x10], ebx
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x8550]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ebx
cmp eax, 7
je 0x100a2c64
cmp eax, 3
je 0x100a2c64
cmp eax, 4
je 0x100a2c64
cmp eax, 8
jne 0x100a2c6e
cmp edx, 2
je 0x100a2c78
cmp edx, 1
je 0x100a2c78
cmp eax, 2
jne 0x100a2c87
cmp edx, 1
jne 0x100a2c87
cmp dword [esi + 0x809c], ebx
jne 0x100a2c87
mov ecx, 1
jmp 0x100a2c89
xor ecx, ecx
mov dword [esi + 0x85c0], ecx
test ecx, ecx
je 0x100a2d17
cmp eax, 2
mov edi, 0x80
mov ecx, 0x100
cmove ecx, edi
xor eax, eax
cmp edx, 1
mov edi, 0x20
cmove eax, edi
add eax, ecx
mov ecx, dword [esi + 0x861c]
mov edi, ecx
shr ecx, 0x10
imul edi, eax
imul ecx, eax
add edi, 0x100
test ecx, 0xffff0000
jne 0x100a333c
cmp edi, 0x3fffffff
jae 0x100a333c
shl edi, 2
push edi
call fcn.101e30cd
push edi
mov dword [esi + 0x87dc], eax
call fcn.101e30cd
add esp, 8
mov dword [esi + 0x87e0], eax
cmp dword [esi + 0x87dc], ebx
je 0x100a333c
test eax, eax
je 0x100a333c
push esi
mov dword [esi + 0x85dc], ebx
mov dword [esi + 0x85e0], ebx
call fcn.100a19f0
add esp, 4
test eax, eax
jne 0x100a333c
cmp dword [esi + 0x8580], ebx
jne 0x100a2fcd
mov bl, byte [esi + 0x50]
mov dword [esi + 0x8584], 0x150
cmp bl, 1
ja 0x100a2d5f
cmp dword [esi + 0x74], ebp
jne 0x100a2d5f
cmp dword [esi + 0x85c0], ebp
je 0x100a2d6e
cmp dword [esi + 0x80a0], ebp
jne 0x100a2d6e
mov eax, 1
jmp 0x100a2d70
xor eax, eax
mov dword [esi + 0x855c], eax
mov eax, dword [esi + 0x10]
cmp eax, 5
je 0x100a2d88
cmp eax, 6
je 0x100a2d88
cmp eax, 7
jne 0x100a2d8e
mov dword [esi + 0x855c], ebp
mov edi, dword [esi + 0x8558]
mov dword [esi + 0x8584], 0x750
test edi, edi
je 0x100a2db0
cmp dword [esi + 0x856c], 1
jne 0x100a2db0
mov al, byte [esi + 0x59]
jmp 0x100a2db2
mov al, bl
movzx ecx, al
mov al, byte [esi + 0x53]
mov word [esp + 0x10], cx
test al, al
je 0x100a2dc8
movzx eax, al
mov ebp, eax
jmp 0x100a2dcb
movzx ebp, cx
mov al, byte [esi + 0x56]
test al, al
movzx eax, al
jne 0x100a2dd8
movzx eax, cx
mov dword [esp + 0x1c], eax
test edi, edi
je 0x100a2dee
cmp dword [esi + 0x856c], 1
jne 0x100a2dee
mov dl, byte [esi + 0x59]
jmp 0x100a2dfc
mov cl, byte [esi + 0x51]
test cl, cl
movzx edx, cl
movzx eax, bl
cmove edx, eax
movzx eax, dl
mov word [esp + 0x14], ax
test edi, edi
je 0x100a2e16
cmp dword [esi + 0x856c], 1
jne 0x100a2e16
mov dl, byte [esi + 0x59]
jmp 0x100a2e24
mov cl, byte [esi + 0x52]
test cl, cl
movzx edx, cl
movzx eax, bl
cmove edx, eax
movzx eax, dl
mov word [esp + 0x18], ax
mov al, byte [esi + 0x54]
test al, al
je 0x100a2e3a
movzx eax, al
mov ebx, eax
jmp 0x100a2e3d
movzx ebx, bp
mov al, byte [esi + 0x57]
mov edx, dword [esp + 0x1c]
test al, al
je 0x100a2e53
movzx eax, al
mov ecx, eax
mov dword [esp + 0x20], ecx
jmp 0x100a2e5a
movzx eax, dx
mov dword [esp + 0x20], eax
mov al, byte [esi + 0x55]
test al, al
je 0x100a2e6c
movzx eax, al
mov ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x100a2e73
movzx eax, bp
mov dword [esp + 0x24], eax
mov al, byte [esi + 0x58]
test al, al
movzx eax, al
jne 0x100a2e80
movzx eax, dx
xor ecx, ecx
mov dword [esp + 0x1c], eax
cmp word [esp + 0x10], 2
movzx eax, word [esp + 0x10]
cmovae ecx, eax
mov edi, dword [esp + 0x24]
movzx eax, cx
xor ecx, ecx
cmp word [esp + 0x14], 2
mov dword [esp + 0x28], eax
movzx eax, word [esp + 0x14]
cmovae ecx, eax
movzx eax, cx
xor ecx, ecx
cmp word [esp + 0x18], 2
mov dword [esp + 0x14], eax
movzx eax, word [esp + 0x18]
cmovae ecx, eax
movzx eax, cx
xor ecx, ecx
mov dword [esp + 0x2c], eax
cmp bp, 2
movzx eax, bp
cmovae ecx, eax
movzx ebp, cx
xor ecx, ecx
cmp bx, 2
mov eax, ebp
mov dword [esp + 0x30], eax
movzx eax, bx
cmovae ecx, eax
movzx ebx, cx
xor ecx, ecx
cmp di, 2
mov dword [esp + 0x18], ebx
mov eax, ebx
mov dword [esp + 0x34], eax
movzx eax, di
cmovae ecx, eax
movzx edi, cx
xor ecx, ecx
mov eax, edi
cmp dx, 2
mov dword [esp + 0x38], eax
mov ebx, edi
movzx eax, dx
cmovae ecx, eax
mov dword [esp + 0x24], ebx
movzx edx, cx
xor ecx, ecx
cmp word [esp + 0x20], 2
mov eax, edx
mov dword [esp + 0x3c], eax
mov edi, edx
mov eax, dword [esp + 0x20]
movzx eax, ax
cmovae ecx, eax
cmp word [esp + 0x1c], 2
movzx eax, cx
mov ecx, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x28]
movzx ecx, cx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x14]
movzx esi, cx
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x2c]
movzx esi, si
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
jae 0x100a2fc7
mov eax, dword [esp + 0x28]
movzx ebx, ax
movzx eax, cx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c]
movzx eax, ax
mov dword [esp + 0x10], eax
mov eax, ebp
movzx ebp, ax
mov eax, dword [esp + 0x34]
movzx eax, ax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
movzx eax, ax
mov dword [esp + 0x24], eax
mov eax, edx
movzx edi, ax
mov eax, dword [esp + 0x40]
movzx eax, ax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
jmp 0x100a2fcf
mov ebx, dword [esp + 0x44]
jmp 0x100a2fcf
xor edi, edi
test byte [esi + 0x8584], 1
jne 0x100a30b0
push 1
push dword [esi + 0x856c]
push dword [esi + 0x85f4]
call fcn.100a1990
add esp, 0xc
test eax, eax
jne 0x100a333c
push eax
push esi
call fcn.100a2410
xor edx, edx
add esp, 8
cmp dword [esi + 0x856c], edx
jbe 0x100a305f
nop
cmp dword [esi + 0x8580], 0
je 0x100a302d
mov eax, dword [esi + 0x85f4]
mov ecx, dword [eax + edx*4]
mov al, byte [esi + edx + 0x8588]
mov byte [ecx], al
jmp 0x100a3056
test edx, edx
jne 0x100a3036
movzx eax, bx
jmp 0x100a3041
movzx eax, bp
cmp edx, 1
je 0x100a3041
movzx eax, di
movzx ecx, al
mov byte [esi + edx + 0x8588], cl
mov eax, dword [esi + 0x85f4]
mov eax, dword [eax + edx*4]
mov byte [eax], cl
inc edx
cmp edx, dword [esi + 0x856c]
jb 0x100a3010
push dword [esi + 0x855c]
mov eax, dword [esi + 0x8584]
push 1
shr eax, 3
push 0
push dword [esi + 0x856c]
and al, 3
movzx eax, al
push eax
push dword [esi + 0x85f4]
call fcn.100a1dc0
xor edx, edx
add esp, 0x18
cmp dword [esi + 0x856c], edx
jbe 0x100a30b0
mov eax, dword [esi + 0x85f4]
mov ecx, dword [eax + edx*4]
inc edx
mov eax, dword [ecx + 4]
sar eax, 1
mov dword [ecx + 8], eax
cmp edx, dword [esi + 0x856c]
jb 0x100a3096
cmp dword [esi + 0x74], 3
je 0x100a3278
test byte [esi + 0x8584], 2
jne 0x100a3192
mov eax, dword [esi + 0x85f4]
push 1
push dword [esi + 0x856c]
add eax, 0x40
push eax
call fcn.100a1990
add esp, 0xc
test eax, eax
jne 0x100a333c
push 1
push esi
call fcn.100a2410
xor edx, edx
add esp, 8
cmp dword [esi + 0x856c], edx
jbe 0x100a3161
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
nop word [eax + eax]
cmp dword [esi + 0x8580], 0
je 0x100a312e
mov eax, dword [esi + 0x85f4]
mov ecx, dword [eax + edx*4 + 0x40]
mov al, byte [esi + edx + 0x8598]
mov byte [ecx], al
jmp 0x100a3158
test edx, edx
jne 0x100a3137
movzx eax, di
jmp 0x100a3142
movzx eax, bx
cmp edx, 1
je 0x100a3142
movzx eax, bp
movzx ecx, al
mov byte [esi + edx + 0x8598], cl
mov eax, dword [esi + 0x85f4]
mov eax, dword [eax + edx*4 + 0x40]
mov byte [eax], cl
inc edx
cmp edx, dword [esi + 0x856c]
jb 0x100a3110
push dword [esi + 0x855c]
mov eax, dword [esi + 0x8584]
push 1
shr eax, 5
push 0
push dword [esi + 0x856c]
and al, 3
movzx eax, al
push eax
mov eax, dword [esi + 0x85f4]
add eax, 0x40
push eax
call fcn.100a1dc0
add esp, 0x18
cmp dword [esi + 0x74], 2
je 0x100a3278
test byte [esi + 0x8584], 4
jne 0x100a3278
mov eax, dword [esi + 0x85f4]
push 1
push dword [esi + 0x856c]
sub eax, 0xffffff80
push eax
call fcn.100a1990
add esp, 0xc
test eax, eax
jne 0x100a333c
push 2
push esi
call fcn.100a2410
xor edx, edx
add esp, 8
cmp dword [esi + 0x856c], edx
jbe 0x100a3247
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
nop dword [eax]
cmp dword [esi + 0x8580], 0
je 0x100a3211
mov eax, dword [esi + 0x85f4]
mov ecx, dword [eax + edx*4 + 0x80]
mov al, byte [esi + edx + 0x85a8]
mov byte [ecx], al
jmp 0x100a323e
test edx, edx
jne 0x100a321a
movzx eax, bx
jmp 0x100a3225
movzx eax, bp
cmp edx, 1
je 0x100a3225
movzx eax, di
movzx ecx, al
mov byte [esi + edx + 0x85a8], cl
mov eax, dword [esi + 0x85f4]
mov eax, dword [eax + edx*4 + 0x80]
mov byte [eax], cl
inc edx
cmp edx, dword [esi + 0x856c]
jb 0x100a31f0
push dword [esi + 0x855c]
mov eax, dword [esi + 0x8584]
push 0
shr eax, 7
push 0
push dword [esi + 0x856c]
and al, 3
movzx eax, al
push eax
mov eax, dword [esi + 0x85f4]
sub eax, 0xffffff80
push eax
call fcn.100a1dc0
add esp, 0x18
push esi
call fcn.100b5b40
add esp, 4
test eax, eax
jne 0x100a333c
mov ecx, dword [esi + 0x84]
cmp ecx, 0x1000
jae 0x100a333c
movzx eax, byte [esi + 0x78]
push eax
lea eax, [ecx + 1]
push eax
push esi
call fcn.100bb330
add esp, 0xc
test eax, eax
jne 0x100a333c
push esi
cmp dword [esi + 0x8874], eax
je 0x100a331e
mov ecx, dword [esi + 0x8870]
mov eax, dword [ecx + 0x85c8]
mov dword [esi + 0x85c8], eax
mov eax, dword [ecx + 0x85f8]
mov dword [esi + 0x85f8], eax
mov eax, dword [ecx + 0x85fc]
mov dword [esi + 0x85fc], eax
mov al, byte [ecx + 0x85bc]
mov byte [esi + 0x85bc], al
mov eax, dword [ecx + 0x8868]
mov dword [esi + 0x8868], eax
mov eax, dword [ecx + 0x85d8]
mov dword [esi + 0x85d8], eax
call fcn.100a2350
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
call fcn.100a33e0
push esi
call fcn.100a2350
push esi
call fcn.100a3f80
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x38
ret