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

Disassembly:
sub esp, 0x88
mov edx, dword [esp + 0x8c]
push ebx
mov ebx, dword [esp + 0x94]
imul ecx, ebx, 0x98
mov eax, dword [edx + 0x38]
push ebp
mov dword [esp + 0x8c], eax
mov eax, dword [edx + 0x3c]
push esi
mov esi, dword [edx + 0x1c]
add ecx, 0xffffff68
add ecx, esi
mov dword [esp + 0x5c], eax
mov eax, dword [edx + 0x40]
push edi
mov edi, dword [esi + 8]
mov ebp, dword [esi + 0xc]
sub edi, dword [esi]
sub ebp, dword [esi + 4]
mov dword [esp + 0x8c], eax
mov eax, dword [edx + 0x44]
mov dword [esp + 0x64], eax
mov eax, dword [ecx]
mov dword [esp + 0x68], esi
mov dword [esp + 0x84], ecx
cmp eax, dword [ecx + 8]
je 0x100a5714
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 0xc]
je 0x100a5714
push ebx
push edx
call fcn.100a8990
mov ebx, eax
add esp, 8
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x100a5efe
mov eax, dword [esp + 0xa0]
cmp eax, 1
jne 0x100a5724
mov ebp, dword [esp + 0x84]
push eax
mov edx, dword [ebp + 0x90]
mov eax, edx
mov edi, dword [ebp + 0x88]
sub eax, edi
sub edx, dword [ebp]
sub edi, dword [ebp]
push eax
mov eax, dword [esp + 0xa4]
push 1
push dword [eax + 0x34]
mov eax, dword [ebp + 0x94]
sub eax, dword [ebp + 4]
push eax
mov eax, dword [ebp + 0x8c]
sub eax, dword [ebp + 4]
push edx
push eax
push edi
push ebx
call fcn.100bea10
push ebx
call fcn.100be9c0
add esp, 0x28
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x88
ret
push eax
push esi
call fcn.100a8bb0
add esp, 8
cmp eax, 0xfffffff
ja 0x100a5ef5
shl eax, 4
push eax
call fcn.1008a9e0
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
test esi, esi
je 0x100a5ef5
cmp dword [esp + 0xa0], 1
mov dword [esp + 0x44], 1
jbe 0x100a5e8e
nop dword [eax]
mov esi, dword [esp + 0x68]
mov eax, edi
add esi, 0x98
mov dword [esp + 0x54], edi
mov dword [esp + 0x2c], edi
mov ecx, ebp
mov dword [esp + 0x28], edi
mov dword [esp + 0x68], esi
mov ebx, dword [esi]
mov edi, dword [esi + 8]
mov edx, dword [esi + 0xc]
sub edi, ebx
mov dword [esp + 0x74], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x3c], ebp
mov ebp, dword [esi + 4]
sub edx, ebp
mov esi, edi
mov dword [esp + 0x48], edi
sub esi, eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x58], esi
and ebx, 0x80000001
jns 0x100a57c6
dec ebx
or ebx, 0xfffffffe
inc ebx
mov eax, edx
mov dword [esp + 0x40], ebx
sub eax, ecx
mov dword [esp + 0x5c], eax
and ebp, 0x80000001
jns 0x100a57df
dec ebp
or ebp, 0xfffffffe
inc ebp
mov edi, dword [esp + 0x8c]
lea eax, [esp + 0x50]
push eax
mov esi, dword [esp + 0x98]
lea eax, [esp + 0x8c]
push eax
lea eax, [esp + 0x54]
mov dword [esp + 0x78], ebp
mov ebp, dword [esp + 0x4c]
push eax
lea eax, [esp + 0x9c]
push eax
push dword [esp + 0x74]
mov eax, dword [esp + 0xb0]
push edi
push dword [esp + 0x78]
push esi
push 0
push ebp
push eax
call fcn.100a8780
mov ecx, dword [esp + 0xc8]
add esp, 0x2c
test ebp, ebp
mov eax, 1
cmovne eax, ebp
mov ebx, dword [ecx + 0x14]
mov ebp, ebx
sub ebp, eax
jne 0x100a5853
mov dword [esp + 0x10], esi
mov dword [esp + 0x20], edi
jmp 0x100a58fe
lea eax, [ebp - 1]
mov edx, 1
mov ecx, eax
mov dword [esp + 0x34], eax
shl edx, cl
cmp esi, edx
ja 0x100a586b
xor esi, esi
jmp 0x100a58a4
mov eax, esi
xor edi, edi
sub eax, edx
xor esi, esi
xor edx, edx
mov ecx, ebp
bts esi, ecx
cmp ecx, 0x20
cmovae edi, esi
xor esi, edi
cmp ecx, 0x40
cmovae edi, esi
add eax, esi
adc edx, edi
add eax, 0xffffffff
adc edx, 0xffffffff
call fcn.10104c20
mov edi, dword [esp + 0x8c]
mov esi, eax
mov eax, dword [esp + 0x34]
mov edx, 1
mov dword [esp + 0x10], esi
mov ecx, eax
shl edx, cl
cmp edi, edx
ja 0x100a58bf
mov dword [esp + 0x20], 0
jmp 0x100a58f7
xor eax, eax
mov ecx, edi
sub ecx, edx
xor edi, edi
xor edx, edx
mov esi, ebp
bts edi, esi
cmp esi, 0x20
cmovae eax, edi
xor edi, eax
cmp esi, 0x40
cmovae eax, edi
add ecx, edi
adc edx, eax
add ecx, 0xffffffff
mov eax, ecx
mov ecx, ebp
adc edx, 0xffffffff
call fcn.10104c20
mov esi, dword [esp + 0x10]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x100a590c
mov ebx, dword [ecx + 0x14]
dec ebx
jmp 0x100a590e
sub ebx, eax
mov eax, dword [esp + 0x60]
test ebx, ebx
jne 0x100a5927
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x10], esi
jmp 0x100a59b3
mov edx, 1
lea ecx, [ebx - 1]
shl edx, cl
cmp eax, edx
ja 0x100a593f
mov dword [esp + 0x18], 0
jmp 0x100a596d
sub eax, edx
xor esi, esi
xor edx, edx
xor edi, edi
mov ecx, ebx
bts esi, ecx
cmp ecx, 0x20
cmovae edi, esi
xor esi, edi
cmp ecx, 0x40
cmovae edi, esi
add eax, esi
adc edx, edi
add eax, 0xffffffff
adc edx, 0xffffffff
call fcn.10104c20
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x64]
lea ecx, [ebx - 1]
mov edx, 1
shl edx, cl
cmp eax, edx
ja 0x100a5983
xor eax, eax
jmp 0x100a59b3
mov ecx, eax
xor edi, edi
sub ecx, edx
xor eax, eax
xor edx, edx
mov esi, ebx
bts edi, esi
cmp esi, 0x20
cmovae eax, edi
xor edi, eax
cmp esi, 0x40
cmovae eax, edi
add ecx, edi
adc edx, eax
add ecx, 0xffffffff
mov eax, ecx
mov ecx, ebx
adc edx, 0xffffffff
call fcn.10104c20
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x68]
mov esi, dword [eax + 0x40]
sub edx, esi
mov edi, dword [eax + 0x20]
mov ebx, dword [eax + 0x1c]
mov ebp, dword [eax + 0x44]
xor eax, eax
cmp dword [esp + 0x90], esi
cmovae eax, edx
sub ecx, edi
xor edx, edx
mov dword [esp + 0x34], eax
cmp dword [esp + 0x4c], edi
cmovae edx, ecx
mov ecx, dword [esp + 0x88]
sub ecx, esi
mov dword [esp + 0x4c], edx
xor edx, edx
cmp dword [esp + 0x88], esi
cmovae edx, ecx
mov ecx, dword [esp + 0x50]
sub ecx, edi
xor esi, esi
cmp dword [esp + 0x50], edi
cmovae esi, ecx
xor ecx, ecx
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x10]
sub esi, ebx
cmp dword [esp + 0x10], ebx
cmovb esi, ecx
mov ecx, dword [esp + 0x20]
sub ecx, ebx
xor edi, edi
cmp dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x18]
cmovb ecx, edi
sub ebx, ebp
cmp dword [esp + 0x18], ebp
cmovb ebx, edi
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x24]
sub ebx, ebp
cmp dword [esp + 0x24], ebp
cmovb ebx, edi
mov edi, eax
cmp edi, 2
jb 0x100a5a63
add edi, 0xfffffffe
jmp 0x100a5a65
xor edi, edi
xor eax, eax
mov dword [esp + 0x6c], edi
add edx, 2
mov dword [esp + 0x90], edi
lea ebp, [esi - 2]
adc eax, eax
neg eax
or eax, edx
mov edx, dword [esp + 0x2c]
cmp eax, dword [esp + 0x28]
cmovb edx, eax
xor eax, eax
cmp esi, 2
mov dword [esp + 0x2c], edx
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x4c]
cmovb ebp, eax
add ecx, 2
mov dword [esp + 0x34], ebp
adc eax, eax
neg eax
or eax, ecx
mov ecx, dword [esp + 0x58]
cmp eax, ecx
cmovb ecx, eax
mov dword [esp + 0x24], ecx
cmp edx, 2
jb 0x100a5ac4
add edx, 0xfffffffe
jmp 0x100a5ac6
xor edx, edx
mov ecx, dword [esp + 0x50]
xor eax, eax
add ecx, 2
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], edx
adc eax, eax
mov dword [esp + 0x4c], edx
neg eax
or eax, ecx
mov ecx, dword [esp + 0x30]
cmp eax, dword [esp + 0x3c]
cmovb ecx, eax
mov eax, dword [esp + 0x18]
cmp eax, 2
mov dword [esp + 0x30], ecx
mov dword [esp + 0x50], ecx
lea esi, [eax - 2]
cmovb esi, dword [esp + 0x28]
xor eax, eax
add ebx, 2
mov dword [esp + 0x3c], esi
adc eax, eax
neg eax
or eax, ebx
mov ebx, dword [esp + 0x5c]
cmp eax, ebx
cmovb ebx, eax
lea eax, [ebp*2]
mov ebp, dword [esp + 0x24]
add edi, edi
add ebp, ebp
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x40], 0
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], edi
jne 0x100a5b68
lea ebx, [eax + 1]
mov eax, dword [esp + 0x2c]
cmp edi, ebx
lea ecx, [ebp + 1]
cmovb ebx, edi
mov edi, dword [esp + 0x48]
add eax, eax
mov ebp, edi
cmp eax, ecx
cmova ecx, eax
cmp ecx, edi
cmovb ebp, ecx
mov ecx, dword [esp + 0x30]
jmp 0x100a5b8b
lea ebx, [edi + 1]
mov edi, dword [esp + 0x48]
cmp eax, ebx
cmovb ebx, eax
mov eax, dword [esp + 0x2c]
lea eax, [eax*2 + 1]
cmp ebp, eax
cmova eax, ebp
mov ebp, edi
cmp eax, edi
cmovb ebp, eax
mov eax, dword [esp + 0x18]
add esi, esi
add eax, eax
mov dword [esp + 0x80], esi
cmp dword [esp + 0x70], 0
mov dword [esp + 0x10], eax
jne 0x100a5bc3
lea eax, [esi + 1]
lea esi, [edx + edx]
cmp esi, eax
cmovb eax, esi
lea esi, [ecx + ecx]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
inc eax
cmp esi, eax
cmova eax, esi
jmp 0x100a5be3
lea eax, [edx*2 + 1]
cmp esi, eax
cmovb eax, esi
mov dword [esp + 0x28], eax
lea eax, [ecx*2 + 1]
cmp dword [esp + 0x10], eax
cmova eax, dword [esp + 0x10]
mov esi, dword [esp + 0x38]
cmp eax, esi
mov dword [esp + 0x10], esi
cmovb esi, eax
mov dword [esp + 0x10], esi
xor esi, esi
cmp dword [esp + 0x38], esi
jbe 0x100a5d33
cmp esi, edx
jb 0x100a5c08
cmp esi, ecx
jb 0x100a5c28
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x74]
add eax, ecx
cmp esi, eax
jb 0x100a5d20
mov eax, dword [esp + 0x18]
add eax, ecx
cmp esi, eax
jae 0x100a5d20
cmp ebp, 1
jb 0x100a5c46
cmp ebp, edi
jae 0x100a5c5c
mov eax, dword [esp + 0x14]
lea ecx, [ebp*4]
mov dword [eax + ecx - 4], 0
jmp 0x100a5c55
lea ecx, [ebp*4]
cmp ebp, edi
jae 0x100a5c5c
mov eax, dword [esp + 0x14]
mov dword [ecx + eax], 0
mov eax, dword [esp + 0x40]
lea edi, [esi + 1]
add eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x14]
push 1
push 0
push 2
lea eax, [ecx + eax*4]
push eax
push edi
push dword [esp + 0x40]
push esi
push dword [esp + 0x88]
push dword [esp + 0x3c]
call fcn.100bea10
mov eax, dword [esp + 0xa0]
sub eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x38]
push 1
push 0
add ecx, 4
push 2
lea eax, [ecx + eax*4]
push eax
mov eax, dword [esp + 0x58]
add eax, dword [esp + 0x88]
push edi
push eax
mov eax, dword [esp + 0x70]
add eax, dword [esp + 0x90]
push esi
push eax
push dword [esp + 0x60]
call fcn.100bea10
mov edx, dword [esp + 0x9c]
add esp, 0x48
push dword [esp + 0x24]
push dword [esp + 0x38]
push dword [esp + 0x34]
push dword [esp + 0x78]
push dword [esp + 0x50]
push edx
push dword [esp + 0x70]
push dword [esp + 0x30]
call fcn.100a45d0
mov eax, dword [esp + 0x34]
push 1
push 0
push 1
lea eax, [eax + ebx*4]
push eax
push edi
push ebp
push esi
push ebx
push dword [esp + 0x5c]
call fcn.100bf190
add esp, 0x44
test eax, eax
je 0x100a5e67
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x48]
inc esi
mov ecx, dword [esp + 0x30]
cmp esi, dword [esp + 0x38]
jb 0x100a5c00
cmp ebx, ebp
jae 0x100a5e44
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x14]
lea eax, [esi + edx*2]
shl eax, 4
add eax, ecx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x80]
sub eax, esi
mov esi, dword [esp + 0x18]
inc eax
shl eax, 4
add eax, ecx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x74]
add esi, eax
add eax, dword [esp + 0x3c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x28]
shl eax, 4
add eax, ecx
mov dword [esp + 0x78], esi
mov dword [esp + 0x54], eax
push 1
push 8
mov esi, ebp
mov eax, 4
sub esi, ebx
push 1
push dword [esp + 0x88]
cmp esi, 4
push dword [esp + 0x40]
cmova esi, eax
lea edi, [esi + ebx]
push edi
push edx
push ebx
push dword [esp + 0x3c]
call fcn.100bea10
push 1
push 8
push 1
push dword [esp + 0xb0]
push dword [esp + 0xac]
push edi
push dword [esp + 0x94]
push ebx
push dword [esp + 0x60]
call fcn.100bea10
add esp, 0x48
push dword [esp + 0x18]
push dword [esp + 0x40]
push dword [esp + 0x38]
push dword [esp + 0x2c]
push dword [esp + 0x80]
push dword [esp + 0x88]
push dword [esp + 0x74]
push esi
mov esi, dword [esp + 0x34]
push esi
call fcn.100a4820
push 1
push 4
push 1
push dword [esp + 0x84]
push dword [esp + 0x44]
push edi
push dword [esp + 0x64]
push ebx
push dword [esp + 0x60]
call fcn.100bf190
add esp, 0x48
test eax, eax
je 0x100a5e6b
mov edx, dword [esp + 0x20]
mov ebx, edi
cmp ebx, ebp
jb 0x100a5d88
jmp 0x100a5e48
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
inc eax
mov dword [esp + 0x44], eax
cmp eax, dword [esp + 0xa0]
jae 0x100a5e8a
mov edi, dword [esp + 0x48]
mov ebp, dword [esp + 0x38]
jmp 0x100a5770
mov esi, dword [esp + 0x14]
push dword [esp + 0x1c]
call fcn.100be9c0
push esi
call fcn.1008aa00
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret
mov ebx, dword [esp + 0x1c]
push esi
call fcn.1008aa00
mov ebp, dword [esp + 0x88]
push 1
mov edx, dword [ebp + 0x90]
mov eax, edx
mov edi, dword [ebp + 0x88]
sub eax, edi
sub edx, dword [ebp]
sub edi, dword [ebp]
push eax
mov eax, dword [esp + 0xa8]
push 1
push dword [eax + 0x34]
mov eax, dword [ebp + 0x94]
sub eax, dword [ebp + 4]
push eax
mov eax, dword [ebp + 0x8c]
sub eax, dword [ebp + 4]
push edx
push eax
push edi
push ebx
call fcn.100bea10
push ebx
call fcn.100be9c0
add esp, 0x2c
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret
push ebx
call fcn.100be9c0
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x88
ret