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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa8
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
lea ecx, [esp + 0x78]
lea edi, [esp + 0x50]
mov dword [edi - 0xc], edi
mov dword [edi - 8], edi
lea edi, [esp + 0x44]
mov dword [ecx], edx
lea edx, [esp + 0x70]
mov dword [ecx + 4], eax
mov dword [edx - 0x24], edx
push 1
push 0xffffffffffffffff
push 0x2d
push edi
call fcn.1007f736
mov esi, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 8], 0
cmp ecx, esi
jne 0x10082822
mov ebx, ecx
xor eax, eax
jmp 0x10082836
mov ecx, dword [esi]
mov edx, dword [esi + 4]
call fcn.10080847
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x48]
mov ecx, esi
sub ebx, ecx
mov ecx, 0
mov edx, 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], 0
mov edi, ebx
sar edi, 3
cmp edi, 2
jb 0x10082959
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x10], eax
call fcn.10081849
mov ecx, eax
cmp ebx, 0x10
mov dword [esp + 0x20], 0
jne 0x100828a9
mov eax, dword [esp + 0x10]
mov dword [esp + 8], 0
xor edx, edx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
jmp 0x10082959
mov dword [esp + 4], ecx
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov dword [esp + 0xc], edx
mov dword [esp + 0x24], ecx
call fcn.10081b54
mov edx, eax
mov eax, dword [esp + 0xc]
cmp eax, 6
jae 0x100828e2
cmp eax, 5
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
je 0x10082900
jmp 0x1008291b
mov ecx, dword [esp + 0x24]
mov eax, 0x77677963
xor eax, dword [ecx]
movzx ecx, word [ecx + 4]
xor ecx, 0x6e69
or ecx, eax
sete al
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x24]
mov eax, 0x676e696d
xor eax, dword [ecx]
movzx ecx, byte [ecx + 4]
xor ecx, 0x77
or ecx, eax
sete al
mov dword [esp + 0x18], eax
cmp edi, 4
jb 0x10082949
mov edi, edx
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
call fcn.100822dc
cmp ebx, 0x20
mov dword [esp + 8], eax
je 0x10082945
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
call fcn.10082727
mov dword [esp + 0x20], eax
mov edx, edi
jmp 0x10082951
mov dword [esp + 8], 0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 4]
test eax, eax
setne al
setne byte [esp + 0x14]
test ecx, ecx
setne byte [esp + 0x15]
test edx, edx
setne byte [esp + 0x16]
cmp dword [esp + 8], 0
setne byte [esp + 0x17]
xor ecx, ecx
test al, al
jne 0x10082991
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x44]
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x100829a5
mov edi, edx
inc ecx
cmp ecx, 4
je 0x10082c32
mov al, byte [esp + ecx + 0x14]
mov edx, edi
jmp 0x1008297d
xor esi, esi
mov dword [esp + 4], ecx
cmp esi, 3
ja 0x100829be
cmp byte [esp + esi + 0x14], 0
je 0x100829be
mov edi, edx
jmp 0x10082aee
mov edi, dword [ebx + esi*8]
mov dword [esp + 0x24], ebx
mov ebx, dword [ebx + esi*8 + 4]
mov eax, ecx
and eax, 0x7fffffff
cmp eax, 1
je 0x10082a2a
cmp eax, 2
je 0x10082a42
cmp eax, 3
mov dword [esp + 0xc], edx
jne 0x10082a73
mov ecx, edi
mov edx, ebx
call fcn.100822dc
test eax, eax
jne 0x10082b07
mov ecx, edi
mov edx, ebx
call fcn.10082727
test eax, eax
jne 0x10082b0d
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x20], 0
mov dword [esp + 8], 0
jmp 0x10082aee
mov ecx, edi
mov edi, edx
mov edx, ebx
call fcn.10081849
mov ecx, dword [esp + 4]
mov edx, edi
test eax, eax
jmp 0x10082ae8
mov ecx, edi
mov edx, ebx
call fcn.10081b54
mov edx, eax
cmp ebx, 6
jae 0x10082a9a
cmp ebx, 5
mov eax, 0
mov ecx, 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
je 0x10082ab6
jmp 0x10082ad5
mov ecx, edi
mov edx, ebx
call fcn.10080847
test eax, eax
jne 0x10082b19
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 4]
mov dword [esp + 0x10], eax
jmp 0x10082aee
movzx ebx, word [edi + 4]
mov eax, dword [edi]
mov ecx, 0x77677963
xor eax, ecx
xor ebx, 0x6e69
or ebx, eax
sete al
mov dword [esp + 0x1c], eax
mov ecx, dword [edi]
mov ebx, 0x676e696d
xor ecx, ebx
mov ebx, edx
movzx edx, byte [edi + 4]
xor edx, 0x77
or edx, ecx
mov edx, ebx
sete cl
mov dword [esp + 0x18], ecx
mov ecx, eax
test edx, edx
jne 0x10082b1d
test cl, cl
jne 0x10082b1d
xor edi, edi
cmp byte [esp + 0x18], 0
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0x24]
jne 0x10082b21
mov eax, dword [esp + 0x10]
inc esi
mov edx, edi
sub eax, ebx
sar eax, 3
cmp esi, eax
jne 0x100829ab
jmp 0x10082993
mov dword [esp + 8], eax
jmp 0x10082b19
mov dword [esp + 8], 0
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 4]
cmp ecx, esi
mov dword [esp + 0xc], edx
jae 0x10082b84
mov edx, dword [esp + 0x44]
xor edi, edi
mov eax, dword [edx + esi*8 + 4]
mov ecx, dword [edx + esi*8]
mov dword [edx + esi*8], 0x101c8289
mov dword [edx + esi*8 + 4], edi
test eax, eax
je 0x10082c20
mov edx, dword [esp + 4]
cmp edx, 3
ja 0x10082b64
cmp byte [esp + edx + 0x14], 0
je 0x10082b64
inc edx
cmp edx, 4
jb 0x10082b52
mov edx, 4
mov esi, dword [esp + 0x44]
mov edi, dword [esi + edx*8]
mov ebx, dword [esi + edx*8 + 4]
mov dword [esi + edx*8], ecx
mov dword [esi + edx*8 + 4], eax
inc edx
test ebx, ebx
mov eax, ebx
mov ecx, edi
jne 0x10082b4d
jmp 0x10082c20
jbe 0x10082c20
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x28], 0x101c8289
mov dword [esp + 0x2c], 0
sub eax, edx
sar eax, 3
cmp esi, eax
jae 0x10082c02
mov eax, esi
movq xmm0, qword [esp + 0x28]
movq xmm1, qword [edx + eax*8]
movq qword [esp + 0x28], xmm1
movq qword [edx + eax*8], xmm0
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x10082c02
inc eax
mov edx, eax
mov eax, edx
cmp edx, 3
ja 0x10082bdf
cmp byte [esp + eax + 0x14], 0
lea edx, [eax + 1]
jne 0x10082bce
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
sub edi, edx
sar edi, 3
cmp eax, edi
jb 0x10082bad
test ecx, ecx
je 0x10082c02
lea eax, [esp + 0x28]
lea ecx, [esp + 0x44]
push eax
call fcn.10043ee4
inc esi
mov eax, esi
mov esi, eax
cmp eax, 3
ja 0x10082c16
cmp byte [esp + esi + 0x14], 0
lea eax, [esi + 1]
jne 0x10082c05
cmp esi, dword [esp + 4]
jb 0x10082b8a
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0xc]
mov byte [esp + ecx + 0x14], 1
jmp 0x10082993
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], 0
mov byte [esp + 0x28], 0
cmp eax, 9
jne 0x10082d3a
mov esi, dword [esp + 0x44]
mov ebx, dword [esi + 0x1c]
cmp ebx, 0xb
jb 0x10082d3a
mov eax, dword [esi + 0x18]
push 0xb
push str.androideabi
mov dword [esp + 0x18], eax
push eax
call fcn.1019e15d
add esp, 0xc
test eax, eax
mov eax, dword [esp + 8]
jne 0x10082d3a
mov ecx, dword [esp + 0x10]
add ecx, 0xb
add ebx, 0xfffffff5
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ebx
je 0x10082d2c
lea ecx, [esp + 0x80]
lea eax, [esp + 0x70]
lea esi, [esp + 0x8c]
mov word [ecx + 8], 0x503
mov dword [ecx], str.android
mov dword [ecx + 4], eax
push esi
call fcn.10082f60
lea eax, [esp + 0x28]
mov ecx, eax
call fcn.1000419e
movq xmm0, qword [esi + 0x10]
movq xmm2, qword [esi]
movq xmm1, qword [esi + 8]
mov ecx, esi
mov ebx, 0xf
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], ebx
mov byte [esi], 0
lea esi, [esp + 0x28]
movq qword [esp + 0x38], xmm0
movq qword [esp + 0x30], xmm1
movq qword [esp + 0x28], xmm2
call fcn.1000419e
mov eax, dword [esp + 0x38]
cmp dword [esp + 0x3c], ebx
jbe 0x10082d1c
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x44]
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 8]
jmp 0x10082d3a
mov dword [esi + 0x18], str.android
mov dword [esi + 0x1c], 7
cmp edi, 0xe
jne 0x10082d86
lea esi, [esp + 0x44]
mov ecx, esi
push 4
mov ebx, eax
call fcn.10082efe
mov eax, dword [esi]
mov esi, dword [ebp + 8]
test ebx, ebx
mov dword [eax + 0x10], str.windows
mov dword [eax + 0x14], 7
jne 0x10082e05
mov edx, dword [esp + 0x20]
cmp edx, 1
ja 0x10082ed7
mov dword [eax + 0x18], str.msvc
mov dword [eax + 0x1c], 4
jmp 0x10082e05
test byte [esp + 0x18], 1
jne 0x10082dbe
test byte [esp + 0x1c], 1
mov esi, dword [ebp + 8]
je 0x10082e05
lea esi, [esp + 0x44]
mov ecx, esi
push 4
call fcn.10082efe
mov ecx, 6
mov eax, dword [esi]
mov esi, dword [ebp + 8]
mov edx, str.windows
movd xmm0, ecx
mov ecx, str.cygnus
jmp 0x10082de3
lea esi, [esp + 0x44]
mov ecx, esi
push 4
call fcn.10082efe
mov ecx, 3
mov eax, dword [esi]
mov edx, str.windows
mov esi, dword [ebp + 8]
movd xmm0, ecx
mov ecx, 0x101db34a
movd xmm2, edx
movd xmm1, ecx
mov ecx, 7
movd xmm3, ecx
punpckldq xmm1, xmm0
punpckldq xmm2, xmm3
punpcklqdq xmm2, xmm1
movdqu xmmword [eax + 0x10], xmm2
cmp edi, 0xe
mov edi, dword [esp + 0x20]
mov ebx, 0xf
sete cl
cmp dword [esp + 8], 0
setne al
cmp edi, 2
jb 0x10082e6b
mov edx, dword [esp + 0x18]
and al, cl
or dl, byte [esp + 0x1c]
and dl, 1
or al, dl
je 0x10082e6b
sub esp, 4
lea esi, [esp + 0x48]
mov dword [esp], 5
mov ecx, esi
call fcn.10082efe
xor eax, eax
cmp edi, 3
mov edi, dword [esi]
mov esi, dword [ebp + 8]
mov ecx, str.macho
mov edx, 0x101db3e1
sete al
cmove edx, ecx
lea eax, [eax + eax + 3]
mov dword [edi + 0x20], edx
mov dword [edi + 0x24], eax
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], 0
mov byte [esi], 0
mov esi, dword [esp + 0x48]
sub esi, dword [esp + 0x44]
je 0x10082eae
sar esi, 3
xor edi, edi
mov ebx, dword [ebp + 8]
test edi, edi
je 0x10082e97
mov ecx, ebx
push 0x2d
call fcn.10030320
mov eax, dword [esp + 0x44]
mov ecx, ebx
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.10004e32
inc edi
cmp esi, edi
jne 0x10082e87
lea ecx, [esp + 0x28]
call fcn.1000419e
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x50]
cmp eax, ecx
je 0x10082ecc
push eax
call fcn.101aff0e
add esp, 4
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor ecx, ecx
cmp edx, 3
mov edx, str.macho
mov esi, 0x101db3e1
cmove esi, edx
sete cl
mov dword [eax + 0x18], esi
mov esi, dword [ebp + 8]
lea ecx, [ecx + ecx + 3]
mov dword [eax + 0x1c], ecx
jmp 0x10082e05