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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov ebx, edx
mov edx, dword [esp + 0x78]
test eax, eax
mov dword [esp + 0x44], eax
mov esi, edx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x7c]
mov ecx, edx
mov dword [esp + 0x14], edx
je 0x6722e25f
mov edx, eax
mov eax, dword [eax]
test esi, esi
mov edi, eax
mov dword [esp + 0x38], eax
je 0x6722e25f
test edi, edi
je 0x6722e25f
test ebx, ebx
mov eax, fcn.6722c750
cmovne eax, ebx
mov esi, eax
mov dword [esp + 0x18], eax
mov eax, edx
mov edx, dword [edx + 4]
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
mov edi, edx
mov dword [esp + 0x3c], edx
mov dword [esp + 4], eax
call esi
test edi, edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x34], 0
je 0x6722e413
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x40]
xor edx, edx
mov dword [esp + 0x30], 0
mov dword [esp + 0x10], 0
cmp edx, 0xd800
je 0x6722e280
cmp edx, 0xdc00
je 0x6722e2b2
mov eax, dword [esp + 0x30]
add eax, eax
mov esi, dword [esp + 0x38]
movzx edi, word [esi + eax]
lea eax, [edi*4]
cmp eax, ebx
mov dword [esp + 0x24], eax
je 0x6722e270
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x24], esi
je 0x6722e292
mov eax, dword [esp + 0x3c]
lea esi, [edx + 1]
test eax, eax
je 0x6722e305
shl edi, 4
mov ebx, 1
add edi, eax
lea eax, [edx - 1]
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], eax
jmp 0x6722e07e
cmp dword [esp + 0x10], edi
jl 0x6722e232
cmp ebx, 1
je 0x6722e06e
cmp ebx, 0x20
mov dword [esp + 0x24], 0xffffffff
mov eax, esi
je 0x6722e0ab
mov eax, dword [esp + 0x1c]
add esi, 1
add ebx, 1
mov dword [esp + 0x10], edi
mov ebp, ecx
lea edi, [eax + ebx]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + ebx*4 - 4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
mov eax, dword [esp + 0x18]
call eax
cmp ebp, eax
mov ecx, eax
jne 0x6722e050
cmp ebx, 0x20
mov edi, dword [esp + 0x10]
mov eax, esi
jne 0x6722e06e
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x10], edi
mov edx, eax
mov ebp, ecx
add dword [esp + 0x30], 1
cmp edx, 0xffff
jle 0x6722dfe0
mov dword [esp + 0x4c], 0xd800
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x38]
sar eax, 5
movzx eax, word [esi + eax*2]
shl eax, 2
cmp eax, dword [esp + 0x34]
je 0x6722e423
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x3c]
and ecx, 0x1f
add eax, ecx
test esi, esi
je 0x6722e585
mov eax, dword [esi + eax*4]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1c], edx
call dword [eax + 8]
test eax, eax
mov edx, dword [esp + 0x1c]
jle 0x6722e4f5
mov esi, dword [esp + 0x38]
add eax, eax
lea ecx, [esi + eax]
lea eax, [esi + eax + 0x40]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x48], eax
mov eax, ecx
movzx edi, word [eax]
lea eax, [edi*4]
cmp eax, ebx
mov dword [esp + 0x24], eax
je 0x6722e3e7
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x24], esi
je 0x6722e3ef
mov eax, dword [esp + 0x3c]
lea esi, [edx + 1]
test eax, eax
je 0x6722e44f
shl edi, 4
mov ebx, 1
add edi, eax
lea eax, [edx - 1]
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], eax
jmp 0x6722e1ae
cmp edi, dword [esp + 0x10]
jg 0x6722e3b2
cmp ebx, 1
je 0x6722e19e
cmp ebx, 0x20
mov dword [esp + 0x24], 0xffffffff
mov eax, esi
je 0x6722e1db
mov eax, dword [esp + 0x1c]
add esi, 1
add ebx, 1
mov dword [esp + 0x10], edi
mov ebp, ecx
lea edi, [eax + ebx]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + ebx*4 - 4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
mov eax, dword [esp + 0x18]
call eax
cmp ebp, eax
mov ecx, eax
jne 0x6722e180
cmp ebx, 0x20
mov edi, dword [esp + 0x10]
mov eax, esi
jne 0x6722e19e
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x10], edi
mov edx, eax
mov ebp, ecx
add dword [esp + 0x30], 2
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x48]
jne 0x6722e135
add dword [esp + 0x4c], 1
cmp dword [esp + 0x4c], 0xdbff
jle 0x6722e0d0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x78], edx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x2c]
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
jmp eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
call eax
test al, al
mov ecx, dword [esp + 0x28]
jne 0x6722e05a
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
add edx, 0x20
jmp 0x6722e0b7
mov eax, 0x1000
mov dword [esp + 0x30], 0x800
jmp 0x6722dffe
cmp ebp, dword [esp + 0x40]
je 0x6722e2a6
cmp edx, dword [esp + 0x10]
jg 0x6722e2c4
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
add edx, 0x20
mov ebp, dword [esp + 0x40]
jmp 0x6722e0b7
mov eax, 0xdc0
mov dword [esp + 0x30], 0x6e0
jmp 0x6722dffe
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
call eax
test al, al
je 0x6722e25f
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x10], edx
add edx, 0x20
jmp 0x6722e0b7
mov eax, dword [esp + 0x38]
mov ebx, 1
lea eax, [eax + edi*8]
mov dword [esp + 0x20], eax
lea eax, [edx - 1]
mov dword [esp + 0x1c], eax
jmp 0x6722e34e
cmp dword [esp + 0x10], edi
jl 0x6722e380
cmp ebx, 1
je 0x6722e33e
mov dword [esp + 0x24], 0xffffffff
cmp ebx, 0x20
mov eax, esi
je 0x6722e0ab
mov eax, dword [esp + 0x1c]
add esi, 1
add ebx, 1
mov dword [esp + 0x10], edi
mov ebp, ecx
lea edi, [eax + ebx]
mov eax, dword [esp + 0x20]
movzx eax, word [eax + ebx*2 - 2]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
mov eax, dword [esp + 0x18]
call eax
cmp ebp, eax
mov ecx, eax
jne 0x6722e320
mov edi, dword [esp + 0x10]
jmp 0x6722e333
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
call eax
test al, al
mov ecx, dword [esp + 0x28]
jne 0x6722e326
jmp 0x6722e25f
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
call eax
test al, al
mov ecx, dword [esp + 0x28]
jne 0x6722e18a
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
add edx, 0x20
jmp 0x6722e1e7
cmp ebp, dword [esp + 0x40]
je 0x6722e407
cmp edx, dword [esp + 0x10]
jg 0x6722e518
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
add edx, 0x20
mov ebp, dword [esp + 0x40]
jmp 0x6722e1e7
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x34], eax
jmp 0x6722dfc6
cmp ebp, dword [esp + 0x40]
je 0x6722e43b
cmp dword [esp + 0x10], edx
jl 0x6722e592
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
add dword [esp + 0x4c], 0x20
add edx, 0x8000
mov ebp, dword [esp + 0x40]
jmp 0x6722e1ff
mov eax, dword [esp + 0x38]
mov ebx, 1
lea eax, [eax + edi*8]
mov dword [esp + 0x20], eax
lea eax, [edx - 1]
mov dword [esp + 0x1c], eax
jmp 0x6722e49e
cmp dword [esp + 0x10], edi
jl 0x6722e4c7
cmp ebx, 1
je 0x6722e48e
mov dword [esp + 0x24], 0xffffffff
cmp ebx, 0x20
mov eax, esi
je 0x6722e1db
mov eax, dword [esp + 0x1c]
add esi, 1
add ebx, 1
mov ebp, ecx
mov dword [esp + 0x10], edi
lea edi, [eax + ebx]
mov eax, dword [esp + 0x20]
movzx eax, word [eax + ebx*2 - 2]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
mov eax, dword [esp + 0x18]
call eax
cmp ebp, eax
mov ecx, eax
jne 0x6722e470
mov edi, dword [esp + 0x10]
jmp 0x6722e483
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
call eax
test al, al
mov ecx, dword [esp + 0x28]
jne 0x6722e476
jmp 0x6722e25f
cmp ebp, dword [esp + 0x40]
je 0x6722e509
cmp dword [esp + 0x10], edx
jl 0x6722e552
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
add edx, 0x400
mov ebp, dword [esp + 0x40]
jmp 0x6722e1fa
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
call eax
test al, al
je 0x6722e25f
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
jmp 0x6722e407
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
call eax
test al, al
je 0x6722e25f
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
jmp 0x6722e509
mov esi, dword [esp + 0x38]
movzx eax, word [esi + eax*2]
jmp 0x6722e104
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
call eax
test al, al
je 0x6722e25f
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
jmp 0x6722e43b