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

Disassembly:
sub esp, 0x28
imul eax, dword [esp + 0x2c], 0xcc
push ebx
add eax, edx
mov dword [esp + 0xc], edx
push ebp
mov ebp, ecx
mov dword [esp + 0x2c], eax
push edi
mov ebx, dword [eax + 0xc8]
mov edi, dword [eax + 0xcc]
test byte [ebp + 0x10], 8
mov dword [esp + 0x2c], ebx
jne 0x1002289b
mov ecx, dword [ebp]
mov edx, ebx
push esi
call fcn.10009010
mov ecx, dword [ebp + 4]
mov edx, ebx
lea esi, [edi + eax]
mov dword [esp + 0x1c], esi
call fcn.10009010
mov ecx, dword [esp + 0x3c]
mov ebx, eax
mov dword [esp + 0x24], ebx
test ecx, ecx
jne 0x100225a2
mov eax, dword [esp + 0x40]
cmp byte [eax + 0x78], cl
je 0x100225b5
cmp byte [eax + 0x7a], cl
jne 0x100225d3
mov dword [esp + 0x28], 0
xor eax, eax
mov dword [ebp + 0xc], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
cmp ecx, 1
jne 0x100226ae
mov ecx, dword [esp + 0x18]
mov edi, dword [ebp]
add edi, dword [ebp + 4]
mov dword [esp + 0x14], eax
mov al, byte [ecx + 0x9bc]
mov esi, dword [ecx + 0x19c]
add ecx, 0x1a0
mov byte [esp + 0x13], al
test esi, esi
je 0x10022602
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x9b8]
neg eax
mov dword [esp + 0x2c], eax
mov edx, edi
sub edx, dword [ecx + 0xc]
cmp edx, eax
jl 0x10022602
mov ebx, dword [esp + 0x18]
mov eax, dword [ecx + 8]
add eax, dword [ebx + 0x9b8]
mov ebx, dword [esp + 0x24]
cmp edi, eax
jle 0x100225e0
mov eax, dword [esp + 0x2c]
add ecx, 0x20
sub esi, 1
jne 0x10022572
jmp 0x10022602
cmp ecx, 1
jne 0x10022518
mov eax, dword [esp + 0x40]
cmp byte [eax + 0x79], 0
jne 0x100225c9
or dword [ebp + 0x10], 8
mov dword [ebp + 8], esi
pop esi
pop edi
mov dword [ebp + 0xc], ebx
pop ebp
pop ebx
add esp, 0x28
ret 8
cmp byte [eax + 0x7b], 0
je 0x10022518
mov dword [esp + 0x28], 1
jmp 0x10022520
cmp byte [esp + 0x13], 0
jne 0x100225f3
mov eax, dword [esp + 0x18]
cmp edx, dword [eax + 0x9b4]
jg 0x10022602
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x14], 1
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x18]
xor edi, edi
mov esi, dword [edx + 0x3a0]
lea ecx, [edx + 0x384]
mov eax, esi
shl eax, 5
add ecx, eax
test esi, esi
je 0x10022651
mov edi, dword [edx + 0x9b8]
neg edi
mov edx, dword [ecx + 8]
sub edx, dword [ebp]
cmp edx, edi
jl 0x1002264f
mov ebx, dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
sub eax, dword [ebx + 0x9b8]
mov ebx, dword [esp + 0x24]
cmp dword [ebp], eax
jge 0x10022678
sub ecx, 0x20
sub esi, 1
jne 0x10022627
xor edi, edi
mov eax, dword [esp + 0x14]
sub eax, 1
je 0x1002269d
sub eax, 1
je 0x10022814
sub eax, 1
jne 0x100226aa
mov edx, dword [esp + 0x20]
mov eax, edx
sub eax, edi
mov dword [ebp + 0xc], eax
jmp 0x10022818
cmp byte [esp + 0x13], 0
jne 0x1002268d
mov eax, dword [esp + 0x18]
xor edi, edi
cmp edx, dword [eax + 0x9b4]
jge 0x10022651
mov eax, dword [esp + 0x14]
mov edi, dword [ecx + 0x10]
or eax, 2
mov dword [esp + 0x14], eax
jmp 0x10022655
mov edx, dword [esp + 0x20]
mov edi, edx
sub edi, ebx
jmp 0x10022818
mov ecx, dword [esp + 0x3c]
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x100226fc
test byte [edi + 0x10], 8
jne 0x100226cb
push dword [esp + 0x40]
mov edx, dword [esp + 0x1c]
push ecx
mov ecx, edi
call fcn.100224a0
mov eax, dword [edi + 4]
mov esi, dword [edi + 0xc]
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x30]
sar ecx, 1
add ecx, dword [ebp]
sar eax, 1
add eax, dword [edi]
sar esi, 1
sub ecx, eax
add esi, dword [edi + 8]
mov edi, ebx
sar edi, 1
call fcn.10009010
sub esi, edi
lea ecx, [esi + eax]
mov dword [esp + 0x1c], ecx
jmp 0x10022704
mov ecx, dword [esp + 0x1c]
mov edi, ebx
sar edi, 1
mov eax, dword [esp + 0x40]
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], ebx
cmp byte [eax + 0x7c], 0
je 0x100227e6
cmp ebx, 0x40
jg 0x10022789
cmp ebx, 0x20
jl 0x10022735
add ecx, edi
mov ebx, 0x40
and ecx, 0xffffffc0
mov dword [esp + 0x1c], ecx
jmp 0x100227e6
lea eax, [ecx + 0x20]
and eax, 0xffffffc0
mov dword [esp + 0x40], eax
test ebx, ebx
jle 0x10022781
mov edx, dword [esp + 0x1c]
lea edi, [ebx + ecx]
mov esi, eax
lea eax, [edi + 0x20]
and eax, 0xffffffc0
sub esi, ecx
sub eax, ebx
mov ecx, eax
sub ecx, edx
sub edx, eax
test ecx, ecx
cmovns edx, ecx
mov ecx, dword [esp + 0x1c]
mov eax, ecx
sub eax, dword [esp + 0x40]
test esi, esi
cmovns eax, esi
cmp eax, edx
cmovg ecx, edi
add ecx, 0x20
and ecx, 0xffffffc0
mov dword [esp + 0x1c], ecx
jmp 0x100227e6
mov ecx, eax
mov dword [esp + 0x1c], ecx
jmp 0x100227e6
mov esi, dword [esp + 0x34]
mov eax, ebx
mov edx, ebx
mov esi, dword [esi + 0xc]
sub eax, esi
jns 0x1002279c
mov eax, esi
sub eax, ebx
cmp eax, 0x28
jge 0x100227b1
mov edx, esi
cmp edx, 0x30
jge 0x100227b1
xor ebx, ebx
mov ebx, 0x36
jmp 0x100227e6
mov ebx, edx
cmp ebx, 0xc0
jae 0x100227e0
mov eax, ebx
and ebx, 0xffffffc0
and eax, 0x3f
cmp eax, 0xa
jae 0x100227cc
add ebx, eax
jmp 0x100227e6
cmp eax, 0x20
jae 0x100227d6
add ebx, 0xa
jmp 0x100227e6
cmp eax, 0x36
jae 0x100227c8
add ebx, 0x36
jmp 0x100227e6
lea ebx, [edx + 0x20]
and ebx, 0xffffffc0
lea esi, [ecx + 0x20]
mov dword [ebp + 0xc], ebx
add esi, ebx
lea edi, [ecx + 0x20]
and esi, 0xffffffc0
and edi, 0xffffffc0
sub esi, ebx
mov eax, esi
sub eax, ecx
cdq
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x1c]
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
cmovg edi, esi
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x28], 0
mov dword [ebp + 8], edi
je 0x10022896
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x40
jge 0x10022831
mov ecx, 0x40
jmp 0x10022837
add ecx, 0x20
and ecx, 0xffffffc0
mov eax, dword [esp + 0x14]
sub eax, 1
je 0x1002288e
sub eax, 1
je 0x10022893
sub eax, 1
je 0x10022896
mov edx, ecx
sar edx, 1
lea eax, [edx + edi]
test cl, 0x40
je 0x10022872
and eax, 0xffffffc0
mov dword [ebp + 0xc], ecx
add eax, 0x20
pop esi
sub eax, edx
or dword [ebp + 0x10], 8
pop edi
mov dword [ebp + 8], eax
pop ebp
pop ebx
add esp, 0x28
ret 8
add eax, 0x20
mov dword [ebp + 0xc], ecx
and eax, 0xffffffc0
pop esi
sub eax, edx
or dword [ebp + 0x10], 8
pop edi
mov dword [ebp + 8], eax
pop ebp
pop ebx
add esp, 0x28
ret 8
sub edx, ecx
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], ecx
or dword [ebp + 0x10], 8
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x28
ret 8