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

Disassembly:
push ebp
mov ebp, edx
push edi
xor edi, edi
push esi
push ebx
sub esp, 0x7c
mov edx, dword [ecx + 4]
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
mov dword [esp + 0x2c], ecx
mov ebx, edx
mov ecx, eax
mov dword [esp + 0x24], edi
add ecx, 8
mov dword [esp + 0x20], ebp
adc ebx, 0
cmp ebp, ecx
sbb edi, ebx
jae 0x6ad86af0
mov eax, 0x15
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 0x6ad86ae0
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x48], eax
add ebx, eax
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
add esi, 7
mov ecx, esi
adc edi, 0
mov esi, 8
and ecx, 0xfffffff8
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], ecx
mov edi, dword [esp + 0x18]
xor ecx, ecx
cmp esi, edi
mov edi, ecx
sbb edi, dword [esp + 0x1c]
jae 0x6ad86e20
mov edi, dword [esp + 0x18]
mov esi, 0x65
cmp esi, edi
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
sbb ecx, edi
jae 0x6ad86ae0
add eax, esi
adc edx, edi
mov dword [esp + 0x38], eax
mov edi, edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
setb dl
cmp ebp, eax
mov eax, dword [esp + 0x24]
sbb eax, edi
setb al
or dl, al
mov byte [esp + 0x4f], dl
jne 0x6ad86ae0
lea eax, [esp + 0x6c]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], 0
call fcn.6ad869f0
test eax, eax
jne 0x6ad86ae5
mov eax, dword [esp + 0x6c]
mov edx, dword [ebx + 0xc]
mov esi, dword [ebx + 0x10]
mov edi, dword [ebx + 0x14]
mov ecx, dword [eax]
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 8]
mov dword [ecx + 0x58], edx
mov edx, dword [esp + 0x20]
mov dword [ecx + 0x24], eax
test ah, 4
mov dword [edx + 0x30], esi
mov esi, dword [ebx + 0x28]
mov dword [edx + 0x34], edi
mov edi, dword [ebx + 0x2c]
mov dword [ecx + 0x40], esi
mov esi, dword [ebx + 0x30]
mov dword [ecx + 0x44], edi
mov edi, dword [ebx + 0x34]
mov edx, dword [ebx + 0x54]
mov dword [ecx + 0x48], esi
mov dword [ecx + 0x4c], edi
mov esi, dword [ebx + 0x38]
mov edi, dword [ebx + 0x3c]
mov dword [ecx + 0x5c], edx
mov dword [ecx + 0x50], esi
mov dword [ecx + 0x54], edi
mov eax, dword [ebx + 0x58]
jne 0x6ad86e40
mov edx, dword [ebx + 0x5c]
mov dword [ecx + 0x68], eax
mov dword [ecx + 0x6c], edx
movzx esi, word [ebx + 0x62]
movzx edi, word [ebx + 0x64]
mov eax, esi
or eax, edi
test al, 1
jne 0x6ad86e79
test di, di
jne 0x6ad86ec8
test si, si
jne 0x6ad86f90
lea esi, [ebx + 0x66]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x48]
add edi, eax
mov eax, dword [esp + 0x28]
add edi, eax
test esi, 7
jne 0x6ad86c67
jmp 0x6ad86f40
add esi, 1
test esi, 7
je 0x6ad86f40
cmp esi, edi
jb 0x6ad86c58
mov eax, dword [esp + 0x28]
lea esi, [ebx + 0x40]
lea edx, [eax + ebp]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x38]
add eax, edx
mov dword [esp + 0x58], eax
movzx eax, word [ebx + 0x60]
add eax, 1
mov dword [ecx + 0x20], eax
cmp eax, 1
jne 0x6ad86fe3
mov edx, dword [ecx]
mov dword [edx], 0x6ade07e2
mov ebx, dword [ebx + 0x40]
lea eax, [edx + 4]
mov dword [edx + 4], ebx
mov edx, dword [esi + 4]
mov dword [eax + 4], edx
mov edx, dword [esi + 8]
mov dword [eax + 8], edx
mov edx, dword [esi + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [esi + 0x10]
mov dword [eax + 0x10], edx
mov esi, dword [ecx]
mov ebx, dword [ecx + 0x20]
mov eax, dword [esi + 0x18]
and eax, 1
or eax, 0x60000000
mov dword [esi + 0x18], eax
cmp ebx, 1
jbe 0x6ad8707e
mov eax, dword [esi + 0x34]
mov edi, ebp
lea ebx, [esi + 0x1c]
and eax, 0xe0000001
or eax, 2
mov dword [esi + 0x34], eax
mov eax, dword [esp + 0x38]
sub edi, eax
cmp edi, 0x25
jbe 0x6ad86e79
mov dword [esp + 0x18], 1
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x48], ecx
jmp 0x6ad86daa
test esi, 1
jne 0x6ad86e79
xor edx, edx
lea edi, [esi + 0x26]
cmp dword [esp + 0x28], edi
sbb ecx, edx
jb 0x6ad86e79
lea eax, [ebp + 0x26]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.6ad8d800
mov dword [ebx], eax
test eax, eax
je 0x6ad87010
movzx eax, byte [ebx + 0x1b]
and eax, 0x1f
or eax, 0x60
mov byte [ebx + 0x1b], al
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x48]
add dword [esp + 0x18], 1
add ebp, eax
mov ecx, dword [esp + 0x18]
mov eax, dword [ebx + 0x20]
mov ebx, dword [ebx]
cmp ecx, eax
jae 0x6ad8705d
mov edi, dword [esp + 0x18]
imul eax, edi, 0x1c
mov edx, edi
mov edi, dword [esp + 0x30]
and edx, 0xfffffff
add edx, edx
sub edi, ebp
add ebx, eax
mov eax, dword [ebx + 0x18]
and eax, 0xe0000001
or eax, edx
mov dword [ebx + 0x18], eax
cmp edi, 0x25
jbe 0x6ad86e79
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 0x6ad86e79
mov eax, edi
mov dword [esp + 0x28], esi
cdq
cmp edi, esi
mov eax, edx
sbb eax, ecx
jb 0x6ad86e79
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 0x6ad86d18
mov dword [ebx], 0x6ade07e2
jmp 0x6ad86d4e
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x20]
mov dword [eax], edx
add esp, 0x7c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [ecx + 0x60], eax
mov eax, dword [ebx + 0x5c]
mov dword [ecx + 0x64], eax
jmp 0x6ad86c0b
movzx edx, si
mov dword [esp + 0x54], 0
lea eax, [eax + edx + 2]
cmp dword [esp + 0x18], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x1c]
sbb eax, dword [esp + 0x54]
jae 0x6ad8701a
mov eax, 0x15
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x18], eax
mov dword [esp], ebx
call fcn.6ad91930
mov edx, dword [ebx + 0x1c]
mov dword [esp], edx
call fcn.6adaeef0
mov edx, dword [ebx + 0x20]
mov dword [esp], edx
call fcn.6adaeef0
mov edx, dword [ebx + 0x38]
mov dword [esp], edx
call fcn.6adaeef0
mov dword [esp], ebx
call fcn.6adaeef0
mov eax, dword [esp + 0x18]
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, di
mov dword [esp + 0x58], eax
add eax, 0x68
test si, si
jne 0x6ad86e50
mov edx, dword [esp + 0x18]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x34], 0
cmp edx, eax
mov dword [esp + 0x30], eax
mov edx, ecx
sbb edx, dword [esp + 0x34]
jb 0x6ad86e79
mov eax, dword [esp + 0x58]
lea esi, [ebx + 0x66]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.6ad8d800
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x50]
test eax, eax
mov dword [edx + 0x1c], eax
je 0x6ad87010
mov eax, dword [esp + 0x20]
mov word [eax + 0x24], di
mov eax, dword [esp + 0x58]
lea esi, [esi + eax + 2]
jmp 0x6ad86c34
cmp esi, edi
jae 0x6ad86c6b
lea eax, [edi + 8]
mov dword [esp + 0x18], ecx
sub eax, esi
mov dword [esp], eax
call fcn.6adaeec0
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x3c], eax
test eax, eax
je 0x6ad87010
mov edx, edi
add eax, 8
sub edx, esi
mov dword [eax - 8], edx
mov dword [esp + 8], edx
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x18]
jmp 0x6ad86c6b
movzx eax, si
xor edx, edx
lea edi, [eax + 0x68]
cmp dword [esp + 0x18], edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
sbb edi, edx
jb 0x6ad86e79
lea edi, [ebx + 0x66]
mov eax, dword [esp + 0x30]
mov dword [esp], edi
mov dword [esp + 0x58], ecx
mov dword [esp + 4], eax
call fcn.6ad8d800
mov edx, dword [esp + 0x20]
mov dword [edx + 0x20], eax
test eax, eax
je 0x6ad87010
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x58]
mov word [edx + 0x26], si
lea esi, [edi + eax + 2]
jmp 0x6ad86c34
mov dword [esp + 4], 0x1c
mov dword [esp], eax
mov dword [esp + 0x18], ecx
call fcn.6adaef20
mov ecx, dword [esp + 0x18]
mov edx, eax
mov dword [ecx], eax
test eax, eax
jne 0x6ad86c98
lea esi, [esi]
nop
mov eax, 0x27
jmp 0x6ad86e7e
mov eax, dword [esp + 0x58]
lea edx, [ebx + 0x66]
mov dword [esp + 0x5c], ecx
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 0x50], edx
call fcn.6ad8d800
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x5c]
test eax, eax
mov dword [edx + 0x1c], eax
mov edx, dword [esp + 0x50]
je 0x6ad87010
mov eax, dword [esp + 0x20]
mov word [eax + 0x24], di
mov eax, dword [esp + 0x58]
lea edi, [edx + eax + 2]
jmp 0x6ad86faf
mov edx, dword [esp + 0x58]
mov esi, ebx
mov ebx, eax
mov eax, ebp
mov ecx, dword [esp + 0x48]
sub eax, edx
cdq
add eax, dword [esp + 0x38]
adc edx, dword [esp + 0x3c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
mov dword [ecx + 0x78], ebx
mov ecx, dword [ecx + 0x24]
mov ebp, ecx
and ebp, 0x4000
jne 0x6ad8717f
mov eax, ecx
mov byte [esp + 0x18], 0
lea edi, [esi + 4]
shr eax, 0xa
xor eax, 1
mov dword [esp + 0x28], eax
test ebx, ebx
je 0x6ad8713b
mov dword [esp + 0x48], esi
mov esi, ebx
jmp 0x6ad870ce
and byte [ebx + 0x1b], 0x1f
add ebp, 1
add edi, 0x1c
cmp ebp, esi
je 0x6ad87129
lea ebx, [edi - 4]
cmp dword [edi - 4], 0x6ade07e2
jne 0x6ad870c0
test ebp, ebp
jne 0x6ad8710a
cmp edi, 0x6ade3c80
je 0x6ad870c4
mov dword [esp + 8], 0x14
mov dword [esp + 4], 0x6ade3c80
mov dword [esp], edi
mov dword [esp + 0x30], ecx
call sub.msvcrt.dll_memcmp
mov ecx, dword [esp + 0x30]
test eax, eax
je 0x6ad870c4
movzx eax, byte [esp + 0x28]
and eax, 1
or al, byte [esp + 0x4f]
je 0x6ad87168
cmp byte [esp + 0x18], 0
jne 0x6ad87123
and byte [ebx + 0x1b], 0x1f
mov byte [esp + 0x18], al
jmp 0x6ad870c4
cmp byte [esp + 0x4f], 0
mov esi, dword [esp + 0x48]
jne 0x6ad87152
cmp byte [esp + 0x18], 0
jne 0x6ad87152
mov edx, ecx
movzx eax, byte [esi + 0x1b]
shr edx, 0xa
and edx, 1
and eax, 0x1f
shl edx, 5
or eax, edx
mov byte [esi + 0x1b], al
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x6ad86e28
movzx eax, byte [ebx + 0x1b]
and eax, 0x1f
or eax, 0x20
mov byte [ebx + 0x1b], al
mov byte [esp + 0x4f], 1
jmp 0x6ad870c4
add esi, 4
xor edi, edi
test ebx, ebx
jne 0x6ad8719a
jmp 0x6ad87152
add edi, 1
add esi, 0x1c
cmp edi, ebx
je 0x6ad87152
cmp dword [esi - 4], 0x6ade07e2
jne 0x6ad87190
cmp esi, 0x6ade3c80
je 0x6ad87190
mov dword [esp + 8], 0x14
mov dword [esp + 4], 0x6ade3c80
mov dword [esp], esi
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x6ad87190
movzx eax, byte [esi + 0x17]
and eax, 0x1f
or eax, 0x40
mov byte [esi + 0x17], al
jmp 0x6ad87152