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

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x30
push ebx
mov ebx, dword [esp + 0x3c]
mov ecx, eax
shl ecx, 0x11
push esi
mov esi, dword [esp + 0x48]
sar ecx, 0x11
push edi
mov edi, dword [esp + 0x48]
cmp eax, ecx
jne 0x6d022106
mov edx, ebx
shl edx, 0x11
sar edx, 0x11
cmp ebx, edx
jne 0x6d022106
mov ecx, edi
shl ecx, 0x11
sar ecx, 0x11
cmp edi, ecx
jne 0x6d022106
mov edx, esi
shl edx, 0x11
sar edx, 0x11
cmp esi, edx
jne 0x6d022106
mov dword [esp + 0x14], eax
push ebp
mov ebp, edi
sub ebp, eax
mov eax, ebp
cdq
mov ecx, eax
xor ecx, edx
mov dword [esp + 0x2c], esi
sub esi, ebx
sub ecx, edx
mov eax, esi
cdq
mov dword [esp + 0x38], esi
mov esi, eax
mov eax, dword [esp + 0x58]
xor esi, edx
sub esi, edx
mov edx, dword [eax]
mov dword [esp + 0x24], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x20], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
dec edx
dec eax
cmp ecx, esi
setge byte [esp + 0x13]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], eax
cmp ebx, dword [esp + 0x20]
jge 0x6d021d7c
mov edx, 1
jmp 0x6d021d87
xor edx, edx
cmp ebx, eax
setle dl
dec edx
and edx, 2
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x24]
jge 0x6d021d98
mov eax, 4
jmp 0x6d021da7
xor ebx, ebx
cmp eax, dword [esp + 0x28]
setle bl
lea eax, [ebx - 1]
and eax, 8
or eax, edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x50]
cmp eax, dword [esp + 0x20]
jge 0x6d021dbe
mov edx, 1
jmp 0x6d021dcb
xor edx, edx
cmp eax, dword [esp + 0x30]
setle dl
dec edx
and edx, 2
cmp edi, dword [esp + 0x24]
jge 0x6d021dd8
mov eax, 4
jmp 0x6d021de5
xor eax, eax
cmp edi, dword [esp + 0x28]
setle al
dec eax
and eax, 8
or eax, edx
mov ebx, eax
mov eax, dword [esp + 0x34]
mov edx, ebx
or edx, eax
je 0x6d021fed
mov edi, dword [esp + 0x1c]
jmp 0x6d021e04
mov eax, dword [esp + 0x34]
test eax, ebx
jne 0x6d022099
test eax, eax
je 0x6d021f07
test al, 3
je 0x6d021e5b
test al, 1
mov eax, dword [esp + 0x20]
jne 0x6d021e24
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], eax
sub eax, dword [esp + 0x48]
jns 0x6d021e30
neg eax
imul eax, ecx
cmp byte [esp + 0x13], 0
lea eax, [esi + eax*2]
je 0x6d021e45
mov edx, esi
sub edx, ecx
lea eax, [eax + edx - 1]
cdq
lea edi, [esi + esi]
idiv edi
test ebp, ebp
jns 0x6d021e51
neg eax
add eax, dword [esp + 0x44]
mov dword [esp + 0x18], eax
jmp 0x6d021ea3
test al, 0xc
je 0x6d021ea3
test al, 4
mov eax, dword [esp + 0x24]
jne 0x6d021e6b
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], eax
sub eax, dword [esp + 0x44]
jns 0x6d021e77
neg eax
imul eax, esi
cmp byte [esp + 0x13], 0
lea eax, [ecx + eax*2]
jne 0x6d021e8c
mov edx, ecx
sub edx, esi
lea eax, [eax + edx - 1]
cdq
lea edi, [ecx + ecx]
idiv edi
cmp dword [esp + 0x38], 0
jge 0x6d021e9b
neg eax
add eax, dword [esp + 0x48]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x14], eax
jge 0x6d021eb4
mov edx, 1
jmp 0x6d021ec5
mov eax, dword [esp + 0x30]
xor edx, edx
cmp dword [esp + 0x14], eax
setle dl
dec edx
and edx, 2
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x18], eax
jge 0x6d021ee3
mov edi, dword [esp + 0x1c]
mov eax, 4
or eax, edx
mov dword [esp + 0x34], eax
jmp 0x6d021fe1
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x3c]
xor eax, eax
cmp dword [esp + 0x18], edi
mov edi, dword [esp + 0x1c]
setle al
dec eax
and eax, 8
or eax, edx
mov dword [esp + 0x34], eax
jmp 0x6d021fe1
test bl, 3
je 0x6d021f54
mov eax, dword [esp + 0x20]
test bl, 1
jne 0x6d021f19
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
sub eax, dword [esp + 0x50]
jns 0x6d021f25
neg eax
imul eax, ecx
cmp byte [esp + 0x13], 0
lea eax, [esi + eax*2]
je 0x6d021f3a
mov edx, esi
sub edx, ecx
add eax, edx
jmp 0x6d021f3b
dec eax
cdq
lea edi, [esi + esi]
idiv edi
test ebp, ebp
jle 0x6d021f47
neg eax
mov edx, dword [esp + 0x4c]
lea edi, [eax + edx]
mov dword [esp + 0x1c], edi
jmp 0x6d021fa1
test bl, 0xc
je 0x6d021fa1
mov edi, dword [esp + 0x24]
test bl, 4
jne 0x6d021f66
mov edi, dword [esp + 0x28]
mov eax, edi
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x1c], edi
jns 0x6d021f74
neg eax
imul eax, esi
cmp byte [esp + 0x13], 0
lea eax, [ecx + eax*2]
je 0x6d021f84
dec eax
jmp 0x6d021f8a
mov edx, ecx
sub edx, esi
add eax, edx
cdq
lea ebx, [ecx + ecx]
idiv ebx
cmp dword [esp + 0x38], 0
jle 0x6d021f99
neg eax
add eax, dword [esp + 0x50]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x2c], eax
jge 0x6d021fb2
mov edx, 1
jmp 0x6d021fc3
mov eax, dword [esp + 0x30]
xor edx, edx
cmp dword [esp + 0x2c], eax
setle dl
dec edx
and edx, 2
cmp edi, dword [esp + 0x24]
jge 0x6d021fd0
mov eax, 4
jmp 0x6d021fdd
xor eax, eax
cmp edi, dword [esp + 0x28]
setle al
dec eax
and eax, 8
or eax, edx
mov ebx, eax
mov edx, ebx
or edx, dword [esp + 0x34]
jne 0x6d021e00
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x18]
mov dword [eax], edx
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x14]
mov dword [eax], edx
mov edx, dword [esp + 0x70]
xor eax, eax
cmp byte [esp + 0x13], al
je 0x6d022047
test ebp, ebp
sets al
lea edi, [ecx + ecx]
lea ebx, [esi + esi]
inc eax
mov dword [edx], eax
mov edx, dword [esp + 0x78]
xor eax, eax
cmp dword [esp + 0x38], eax
setl al
neg ecx
lea eax, [eax*4 + 4]
mov dword [edx], eax
mov edx, dword [esp + 0x1c]
mov eax, edx
sub eax, dword [esp + 0x18]
cmp edx, dword [esp + 0x4c]
je 0x6d022081
xor ebp, ebp
jmp 0x6d022085
cmp dword [esp + 0x38], eax
lea edi, [esi + esi]
setl al
lea ebx, [ecx + ecx]
lea eax, [eax*4 + 4]
mov dword [edx], eax
mov edx, dword [esp + 0x78]
xor eax, eax
test ebp, ebp
sets al
neg esi
inc eax
mov dword [edx], eax
mov edx, dword [esp + 0x2c]
mov eax, edx
sub eax, dword [esp + 0x14]
cmp edx, dword [esp + 0x50]
je 0x6d022081
xor ebp, ebp
jmp 0x6d022085
mov ebp, dword [esp + 0x54]
cdq
xor eax, edx
sub eax, edx
mov edx, 1
sub edx, ebp
add eax, edx
mov dword [esp + 0x3c], eax
jne 0x6d0220a3
pop ebp
pop edi
pop esi
xor al, al
pop ebx
add esp, 0x30
ret
mov ebp, dword [esp + 0x48]
mov eax, edi
cdq
sub eax, edx
mov edx, dword [esp + 0x14]
sar eax, 1
neg eax
cmp edx, ebp
je 0x6d0220c4
sub edx, ebp
jns 0x6d0220be
neg edx
imul edx, ecx
lea eax, [eax + edx*2]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x44]
cmp ecx, edx
je 0x6d0220dc
sub ecx, edx
jns 0x6d0220d6
neg ecx
imul ecx, esi
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x3c]
mov dword [ecx], edx
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
add eax, ebx
mov dword [ecx], eax
mov eax, dword [esp + 0x74]
sub edi, ebx
pop ebp
mov dword [edx], ebx
mov dword [eax], edi
pop edi
pop esi
mov al, 1
pop ebx
add esp, 0x30
ret
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0x70]
push ecx
push edx
push esi
push edi
push ebx
push eax
call fcn.6d021580
add esp, 0x38
pop edi
pop esi
pop ebx
add esp, 0x30
ret