Function at 0x100a43f0
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 0x100a4434
cmp eax, 3
je 0x100a4434
cmp eax, 4
je 0x100a4434
cmp eax, 8
jne 0x100a443e
cmp edx, 2
je 0x100a4448
cmp edx, 1
je 0x100a4448
cmp eax, 2
jne 0x100a4457
cmp edx, 1
jne 0x100a4457
cmp dword [esi + 0x809c], ebx
jne 0x100a4457
mov ecx, 1
jmp 0x100a4459
xor ecx, ecx
mov dword [esi + 0x85c0], ecx
test ecx, ecx
je 0x100a44e7
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 0x100a4b0c
cmp edi, 0x3fffffff
jae 0x100a4b0c
shl edi, 2
push edi
call fcn.101fc42d
push edi
mov dword [esi + 0x87dc], eax
call fcn.101fc42d
add esp, 8
mov dword [esi + 0x87e0], eax
cmp dword [esi + 0x87dc], ebx
je 0x100a4b0c
test eax, eax
je 0x100a4b0c
push esi
mov dword [esi + 0x85dc], ebx
mov dword [esi + 0x85e0], ebx
call fcn.100a31c0
add esp, 4
test eax, eax
jne 0x100a4b0c
cmp dword [esi + 0x8580], ebx
jne 0x100a479d
mov bl, byte [esi + 0x50]
mov dword [esi + 0x8584], 0x150
cmp bl, 1
ja 0x100a452f
cmp dword [esi + 0x74], ebp
jne 0x100a452f
cmp dword [esi + 0x85c0], ebp
je 0x100a453e
cmp dword [esi + 0x80a0], ebp
jne 0x100a453e
mov eax, 1
jmp 0x100a4540
xor eax, eax
mov dword [esi + 0x855c], eax
mov eax, dword [esi + 0x10]
cmp eax, 5
je 0x100a4558
cmp eax, 6
je 0x100a4558
cmp eax, 7
jne 0x100a455e
mov dword [esi + 0x855c], ebp
mov edi, dword [esi + 0x8558]
mov dword [esi + 0x8584], 0x750
test edi, edi
je 0x100a4580
cmp dword [esi + 0x856c], 1
jne 0x100a4580
mov al, byte [esi + 0x59]
jmp 0x100a4582
mov al, bl
movzx ecx, al
mov al, byte [esi + 0x53]
mov word [esp + 0x10], cx
test al, al
je 0x100a4598
movzx eax, al
mov ebp, eax
jmp 0x100a459b
movzx ebp, cx
mov al, byte [esi + 0x56]
test al, al
movzx eax, al
jne 0x100a45a8
movzx eax, cx
mov dword [esp + 0x1c], eax
test edi, edi
je 0x100a45be
cmp dword [esi + 0x856c], 1
jne 0x100a45be
mov dl, byte [esi + 0x59]
jmp 0x100a45cc
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 0x100a45e6
cmp dword [esi + 0x856c], 1
jne 0x100a45e6
mov dl, byte [esi + 0x59]
jmp 0x100a45f4
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 0x100a460a
movzx eax, al
mov ebx, eax
jmp 0x100a460d
movzx ebx, bp
mov al, byte [esi + 0x57]
mov edx, dword [esp + 0x1c]
test al, al
je 0x100a4623
movzx eax, al
mov ecx, eax
mov dword [esp + 0x20], ecx
jmp 0x100a462a
movzx eax, dx
mov dword [esp + 0x20], eax
mov al, byte [esi + 0x55]
test al, al
je 0x100a463c
movzx eax, al
mov ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x100a4643
movzx eax, bp
mov dword [esp + 0x24], eax
mov al, byte [esi + 0x58]
test al, al
movzx eax, al
jne 0x100a4650
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 0x100a4797
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 0x100a479f
mov ebx, dword [esp + 0x44]
jmp 0x100a479f
xor edi, edi
test byte [esi + 0x8584], 1
jne 0x100a4880
push 1
push dword [esi + 0x856c]
push dword [esi + 0x85f4]
call fcn.100a3160
add esp, 0xc
test eax, eax
jne 0x100a4b0c
push eax
push esi
call fcn.100a3be0
xor edx, edx
add esp, 8
cmp dword [esi + 0x856c], edx
jbe 0x100a482f
nop
cmp dword [esi + 0x8580], 0
je 0x100a47fd
mov eax, dword [esi + 0x85f4]
mov ecx, dword [eax + edx*4]
mov al, byte [esi + edx + 0x8588]
mov byte [ecx], al
jmp 0x100a4826
test edx, edx
jne 0x100a4806
movzx eax, bx
jmp 0x100a4811
movzx eax, bp
cmp edx, 1
je 0x100a4811
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 0x100a47e0
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.100a3590
xor edx, edx
add esp, 0x18
cmp dword [esi + 0x856c], edx
jbe 0x100a4880
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 0x100a4866
cmp dword [esi + 0x74], 3
je 0x100a4a48
test byte [esi + 0x8584], 2
jne 0x100a4962
mov eax, dword [esi + 0x85f4]
push 1
push dword [esi + 0x856c]
add eax, 0x40
push eax
call fcn.100a3160
add esp, 0xc
test eax, eax
jne 0x100a4b0c
push 1
push esi
call fcn.100a3be0
xor edx, edx
add esp, 8
cmp dword [esi + 0x856c], edx
jbe 0x100a4931
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 0x100a48fe
mov eax, dword [esi + 0x85f4]
mov ecx, dword [eax + edx*4 + 0x40]
mov al, byte [esi + edx + 0x8598]
mov byte [ecx], al
jmp 0x100a4928
test edx, edx
jne 0x100a4907
movzx eax, di
jmp 0x100a4912
movzx eax, bx
cmp edx, 1
je 0x100a4912
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 0x100a48e0
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.100a3590
add esp, 0x18
cmp dword [esi + 0x74], 2
je 0x100a4a48
test byte [esi + 0x8584], 4
jne 0x100a4a48
mov eax, dword [esi + 0x85f4]
push 1
push dword [esi + 0x856c]
sub eax, 0xffffff80
push eax
call fcn.100a3160
add esp, 0xc
test eax, eax
jne 0x100a4b0c
push 2
push esi
call fcn.100a3be0
xor edx, edx
add esp, 8
cmp dword [esi + 0x856c], edx
jbe 0x100a4a17
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
nop dword [eax]
cmp dword [esi + 0x8580], 0
je 0x100a49e1
mov eax, dword [esi + 0x85f4]
mov ecx, dword [eax + edx*4 + 0x80]
mov al, byte [esi + edx + 0x85a8]
mov byte [ecx], al
jmp 0x100a4a0e
test edx, edx
jne 0x100a49ea
movzx eax, bx
jmp 0x100a49f5
movzx eax, bp
cmp edx, 1
je 0x100a49f5
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 0x100a49c0
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.100a3590
add esp, 0x18
push esi
call fcn.100b7360
add esp, 4
test eax, eax
jne 0x100a4b0c
mov ecx, dword [esi + 0x84]
cmp ecx, 0x1000
jae 0x100a4b0c
movzx eax, byte [esi + 0x78]
push eax
lea eax, [ecx + 1]
push eax
push esi
call fcn.100bcb50
add esp, 0xc
test eax, eax
jne 0x100a4b0c
push esi
cmp dword [esi + 0x8874], eax
je 0x100a4aee
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.100a3b20
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
call fcn.100a4bb0
push esi
call fcn.100a3b20
push esi
call fcn.100a57a0
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