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

Disassembly:
push ebp
mov ebp, edx
push edi
push esi
mov esi, eax
push ebx
sub esp, 0x7c
mov dword [esp + 0x2c], eax
mov eax, dword [ecx]
mov dword [esp + 0x28], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x30], ecx
mov ecx, eax
add ecx, 8
mov ebx, edx
mov dword [esp + 0x20], ebp
adc ebx, 0
mov dword [esp + 0x24], 0
cmp ebp, ecx
mov ebp, dword [esp + 0x24]
sbb ebp, ebx
jae 0x6ad868e0
mov dword [esp + 0x20], 0x15
mov eax, dword [esp + 0x20]
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, 0xfffffff7
cmp ecx, eax
mov ecx, 0xffffffff
sbb ecx, edx
jb 0x6ad868cc
mov ebp, esi
mov dword [esp + 0x48], eax
add ebp, eax
mov ecx, dword [ebp]
mov ebx, dword [ebp + 4]
add ecx, 7
adc ebx, 0
mov edi, ecx
xor ecx, ecx
and edi, 0xfffffff8
mov dword [esp + 0x1c], ebx
mov ebx, 8
cmp ebx, edi
mov dword [esp + 0x18], edi
mov edi, ecx
sbb edi, dword [esp + 0x1c]
jae 0x6ad86c80
mov ebx, 0x65
cmp ebx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov edi, ecx
mov ecx, dword [esp + 0x18]
sbb edi, ebx
jae 0x6ad868cc
add eax, ecx
mov edi, dword [esp + 0x24]
adc edx, ebx
mov ecx, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], eax
setb al
cmp dword [esp + 0x28], ecx
sbb edi, edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x44], edx
setb dl
or al, dl
mov byte [esp + 0x4f], al
jne 0x6ad868cc
lea eax, [esp + 0x6c]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], 0
call fcn.6ad867f0
mov dword [esp + 0x20], eax
test eax, eax
jne 0x6ad868d4
mov ecx, dword [esp + 0x6c]
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov esi, dword [ecx]
mov ebx, ecx
mov dword [esi + 0x58], edx
mov edx, dword [ebp + 0x14]
mov dword [esi + 0x24], edi
and edi, 0x400
mov dword [ecx + 0x34], edx
mov edx, dword [ebp + 0x2c]
mov dword [ecx + 0x30], eax
mov eax, dword [ebp + 0x28]
mov dword [esi + 0x44], edx
mov edx, dword [ebp + 0x34]
mov dword [esi + 0x40], eax
mov eax, dword [ebp + 0x30]
mov dword [esi + 0x4c], edx
mov edx, dword [ebp + 0x3c]
mov dword [esi + 0x48], eax
mov eax, dword [ebp + 0x38]
mov dword [esi + 0x54], edx
mov edx, dword [ebp + 0x54]
mov dword [esi + 0x50], eax
mov dword [esi + 0x5c], edx
mov eax, dword [ebp + 0x58]
jne 0x6ad86ca8
mov edx, dword [ebp + 0x5c]
mov dword [esi + 0x68], eax
mov dword [esi + 0x6c], edx
movzx eax, word [ebp + 0x62]
movzx edi, word [ebp + 0x64]
mov word [esp + 0x34], ax
or eax, edi
test al, 1
jne 0x6ad86d88
test di, di
je 0x6ad86cc0
movzx eax, di
cmp word [esp + 0x34], 0
lea edx, [eax + 0x68]
je 0x6ad86a30
movzx eax, word [esp + 0x34]
lea edx, [edx + eax + 2]
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x18], edx
mov dword [esp + 0x54], 0
sbb eax, dword [esp + 0x54]
mov dword [esp + 0x50], edx
jb 0x6ad86d88
lea edx, [ebp + 0x66]
test di, di
jne 0x6ad86ce0
movzx eax, word [esp + 0x34]
mov dword [esp + 0x50], ecx
test ax, ax
je 0x6ad86aa2
movzx edi, ax
mov dword [esp], edx
mov dword [esp + 4], edi
mov dword [esp + 0x58], edx
call fcn.6ad8d4f0
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x6c]
mov dword [ecx + 0x20], eax
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x6ad86f06
movzx eax, word [esp + 0x34]
mov edx, dword [esp + 0x58]
mov word [ebx + 0x26], ax
lea edx, [edx + edi + 2]
mov ebx, dword [esp + 0x48]
add ebx, dword [esp + 0x18]
add ebx, dword [esp + 0x2c]
test dl, 7
je 0x6ad86acc
cmp ebx, edx
ja 0x6ad86ac4
jmp 0x6ad86ad4
cmp ebx, edx
je 0x6ad86ad4
add edx, 1
test dl, 7
jne 0x6ad86ac0
cmp ebx, edx
ja 0x6ad86d98
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
lea ebx, [ebp + 0x40]
add edi, eax
add eax, dword [esp + 0x38]
mov dword [esp + 0x48], eax
movzx eax, word [ebp + 0x60]
mov dword [esp + 0x34], edi
add eax, 1
mov dword [esi + 0x20], eax
cmp eax, 1
jne 0x6ad86f13
mov edx, dword [esi]
mov dword [edx], 0x6ae1a7e2
mov ecx, dword [ebp + 0x40]
lea eax, [edx + 4]
mov dword [edx + 4], ecx
mov edx, dword [ebx + 4]
mov dword [eax + 4], edx
mov edx, dword [ebx + 8]
mov dword [eax + 8], edx
mov edx, dword [ebx + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [ebx + 0x10]
mov dword [eax + 0x10], edx
mov eax, dword [esi]
mov ebx, dword [esi + 0x20]
mov edx, dword [eax + 0x18]
and edx, 1
or edx, 0x60000000
mov dword [eax + 0x18], edx
cmp ebx, 1
jbe 0x6ad86dee
mov edx, dword [eax + 0x34]
mov edi, dword [esp + 0x28]
lea ebx, [eax + 0x1c]
sub edi, dword [esp + 0x38]
and edx, 0xe0000001
or edx, 2
mov dword [eax + 0x34], edx
cmp edi, 0x25
jbe 0x6ad86d30
mov dword [esp + 0x18], 1
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x2c], esi
jmp 0x6ad86c10
test esi, 1
jne 0x6ad86d30
xor edx, edx
lea edi, [esi + 0x26]
cmp dword [esp + 0x28], edi
sbb ecx, edx
jb 0x6ad86d30
lea eax, [ebp + 0x26]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.6ad8d4f0
mov dword [ebx], eax
test eax, eax
je 0x6ad86f2f
movzx eax, byte [ebx + 0x1b]
and eax, 0x1f
or eax, 0x60
mov byte [ebx + 0x1b], al
mov edi, dword [esp + 0x2c]
add dword [esp + 0x18], 1
mov eax, dword [esp + 0x18]
mov ebx, dword [edi + 0x20]
add ebp, dword [esp + 0x28]
cmp eax, ebx
jae 0x6ad86dd5
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x2c]
imul ebx, eax, 0x1c
and eax, 0xfffffff
add ebx, dword [edi]
mov edi, dword [esp + 0x34]
lea edx, [eax + eax]
mov eax, dword [ebx + 0x18]
sub edi, ebp
and eax, 0xe0000001
or eax, edx
mov dword [ebx + 0x18], eax
cmp edi, 0x25
jbe 0x6ad86d30
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
add eax, 7
mov esi, eax
adc edx, 0
mov eax, 0x25
and esi, 0xfffffff8
mov ecx, edx
cmp eax, esi
mov eax, 0
sbb eax, edx
jae 0x6ad86d30
mov eax, edi
mov dword [esp + 0x28], esi
cdq
cmp edi, esi
mov eax, edx
sbb eax, ecx
jb 0x6ad86d30
mov esi, dword [ebp + 0x10]
mov dword [ebx + 4], esi
mov esi, dword [ebp + 0x14]
mov dword [ebx + 8], esi
mov esi, dword [ebp + 0x18]
mov dword [ebx + 0xc], esi
mov esi, dword [ebp + 0x1c]
mov dword [ebx + 0x10], esi
mov edx, dword [ebp + 0x20]
mov dword [ebx + 0x14], edx
movzx esi, word [ebp + 0x24]
test si, si
jne 0x6ad86b80
mov dword [ebx], 0x6ae1a7e2
jmp 0x6ad86bb6
mov eax, dword [esp + 0x90]
mov dword [esp + 0x20], 0
mov dword [eax], 0
mov eax, dword [esp + 0x20]
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esi + 0x60], eax
movzx eax, word [ebp + 0x5c]
mov word [esi + 0x64], ax
movzx eax, word [ebp + 0x5e]
mov word [esi + 0x66], ax
jmp 0x6ad869f9
cmp word [esp + 0x34], 0
lea edx, [ebp + 0x66]
je 0x6ad86aa2
mov edx, 0x66
jmp 0x6ad86a27
movzx eax, di
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
call fcn.6ad8d4f0
mov ecx, dword [esp + 0x50]
mov dword [ecx + 0x1c], eax
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx + 0x1c]
mov ebx, ecx
test edx, edx
je 0x6ad86f06
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov word [ecx + 0x24], di
lea edx, [edx + eax + 2]
jmp 0x6ad86a5a
mov dword [esp + 0x20], 0x15
mov ebx, dword [esp + 0x6c]
test ebx, ebx
je 0x6ad868d4
mov dword [esp], ebx
call fcn.6ad915a0
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
call fcn.6adab650
mov eax, dword [ebx + 0x20]
mov dword [esp], eax
call fcn.6adab650
mov eax, dword [ebx + 0x38]
mov dword [esp], eax
call fcn.6adab650
mov dword [esp], ebx
call fcn.6adab650
mov eax, dword [esp + 0x20]
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x20], 0x15
jmp 0x6ad86d44
lea eax, [ebx + 8]
mov dword [esp + 0x18], edx
sub eax, edx
mov dword [esp], eax
call fcn.6adab620
mov dword [esi + 0x3c], eax
test eax, eax
je 0x6ad86f2f
mov edx, dword [esp + 0x18]
add eax, 8
sub ebx, edx
mov dword [eax - 8], ebx
mov dword [esp + 8], ebx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x6ad86ad4
mov eax, ebp
sub eax, dword [esp + 0x48]
mov esi, edi
cdq
add eax, dword [esp + 0x38]
adc edx, dword [esp + 0x3c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x78], ebx
mov edi, ecx
and edi, 0x4000
jne 0x6ad86f53
test ebx, ebx
je 0x6ad86eb5
mov eax, ecx
mov esi, dword [esi]
mov byte [esp + 0x18], 0
xor edx, edx
shr eax, 0xa
xor eax, 1
add esi, 4
mov dword [esp + 0x28], eax
jmp 0x6ad86e36
and byte [ebp + 0x1b], 0x1f
add edi, 1
add esi, 0x1c
cmp ebx, edi
je 0x6ad86e85
lea ebp, [esi - 4]
cmp dword [esi - 4], 0x6ae1a7e2
jne 0x6ad86e28
test edi, edi
jne 0x6ad86ee0
cmp esi, 0x6ae1dd40
je 0x6ad86e7e
mov dword [esp + 8], 0x14
mov dword [esp + 4], 0x6ae1dd40
mov dword [esp], esi
mov dword [esp + 0x34], edx
mov dword [esp + 0x2c], ecx
call sub.msvcrt.dll_memcmp
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
test eax, eax
jne 0x6ad86ee0
test edx, edx
cmove edx, ebp
jmp 0x6ad86e2c
test edx, edx
je 0x6ad86eb5
and ch, 4
je 0x6ad86e9a
cmp byte [esp + 0x4f], 0
mov eax, 1
je 0x6ad86ea6
cmp byte [esp + 0x18], 1
sbb eax, eax
not eax
and eax, 3
movzx ecx, byte [edx + 0x1b]
shl eax, 5
and ecx, 0x1f
or eax, ecx
mov byte [edx + 0x1b], al
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [edi], eax
mov eax, dword [esp + 0x6c]
mov dword [edi + 4], edx
mov edi, dword [esp + 0x90]
mov dword [edi], eax
jmp 0x6ad868d4
movzx eax, byte [esp + 0x28]
and eax, 1
or al, byte [esp + 0x4f]
je 0x6ad86f3c
cmp byte [esp + 0x18], 0
jne 0x6ad86e2c
and byte [ebp + 0x1b], 0x1f
mov byte [esp + 0x18], al
jmp 0x6ad86e2c
mov dword [esp + 0x20], 0x27
jmp 0x6ad86d44
mov dword [esp + 4], 0x1c
mov dword [esp], eax
call fcn.6adab680
mov dword [esi], eax
mov edx, eax
test eax, eax
jne 0x6ad86b02
mov dword [esp + 0x20], 0x27
jmp 0x6ad86d38
movzx eax, byte [ebp + 0x1b]
and eax, 0x1f
or eax, 0x20
mov byte [ebp + 0x1b], al
mov byte [esp + 0x4f], 1
jmp 0x6ad86e2c
mov esi, dword [esi]
test ebx, ebx
je 0x6ad86eb5
add esi, 4
xor edi, edi
jmp 0x6ad86f76
add edi, 1
add esi, 0x1c
cmp ebx, edi
je 0x6ad86eb5
lea ebp, [esi - 4]
cmp dword [esi - 4], 0x6ae1a7e2
jne 0x6ad86f68
cmp esi, 0x6ae1dd40
je 0x6ad86f68
mov dword [esp + 8], 0x14
mov dword [esp + 4], 0x6ae1dd40
mov dword [esp], esi
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x6ad86f68
movzx eax, byte [ebp + 0x1b]
and eax, 0x1f
or eax, 0x40
mov byte [ebp + 0x1b], al
jmp 0x6ad86eb5