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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x68], edx
mov dword [esp + 0x54], eax
mov ebx, edi
mov dword [esp + 0x78], ecx
sar ebx, 0x10
test edx, edx
setne dl
test ecx, ecx
setne al
cmp dl, al
je 0x684a8e11
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0xb4]
mov eax, dword [eax + 4]
mov dword [esp + 0x38], eax
test ebp, ebp
je 0x684a8892
mov eax, dword [eax + 0x504]
cmp eax, 1
je 0x684a8e32
cmp eax, 3
jne 0x684a8e70
mov dword [esp + 0x44], 0
movsx ebx, bx
movsx edi, di
mov edx, 7
mov dword [esp + 0x4c], 4
mov dword [esp + 0x50], 4
mov dword [esp + 0x48], 0
mov dword [esp + 0x40], 7
mov esi, dword [esp + 0xb4]
xor eax, eax
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x4c]
test esi, esi
mov esi, dword [esp + 0xbc]
setne al
imul ebp, dword [esp + 0xb0]
add eax, 4
mov eax, dword [esi + eax*4 + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x1c]
mov esi, dword [esp + 0x50]
imul esi, dword [esp + 0xac]
mov dword [esp + 0x64], eax
cmp eax, dword [ecx + 0x4fc]
je 0x684a8be2
mov eax, dword [esp + 0x38]
add eax, 0x580
cmp dword [esp + 0xbc], eax
je 0x684a8ec4
mov edx, dword [esp + 0x44]
shl ebp, 4
lea eax, [edi + edi]
mov ecx, dword [esp + 0x48]
test edx, edx
cmove edi, eax
shl esi, 4
test ecx, ecx
lea eax, [ebp + edi]
mov dword [esp + 0x40], eax
lea eax, [ebx + ebx]
cmove ebx, eax
mov eax, dword [esp + 0xc0]
shl eax, 4
add eax, dword [esp + 0x38]
add esi, ebx
mov ecx, dword [eax + 0x78c]
mov dword [esp + 0x5c], eax
mov eax, esi
imul ecx
mov esi, eax
lea eax, [ecx*8 - 0x20000]
mov edi, edx
cdq
add esi, eax
adc edi, edx
mov ebx, edi
sar ebx, 0x1f
mov ebp, ebx
xor ebp, esi
mov eax, ebp
mov ebp, ebx
xor ebp, edi
sub eax, ebx
mov edx, ebp
sbb edx, ebx
add eax, 0x80
adc edx, 0
shrd eax, edx, 8
test edi, edi
jns 0x684a89a5
neg eax
add eax, 0x20
mov edi, dword [esp + 0x38]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xc0]
shl eax, 4
mov eax, dword [edi + eax + 0x794]
lea esi, [eax*8 - 0x20000]
imul dword [esp + 0x40]
mov edi, esi
sar edi, 0x1f
add esi, eax
adc edi, edx
mov ebx, edi
sar ebx, 0x1f
mov ebp, ebx
xor ebp, esi
mov eax, ebp
mov ebp, ebx
xor ebp, edi
sub eax, ebx
mov edx, ebp
sbb edx, ebx
add eax, 0x80
adc edx, 0
shrd eax, edx, 8
test edi, edi
jns 0x684a89fc
neg eax
mov edi, dword [esp + 0x58]
lea ebx, [eax + 0x20]
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x5c]
imul ecx, dword [esp + 0xa4]
mov dword [esp + 0x6c], ebx
mov eax, edi
mov ebp, dword [esp + 0x38]
sar eax, 0xa
mov esi, dword [esi + 0x790]
mov dword [esp + 0x40], eax
mov eax, ebx
sar eax, 0xa
mov dword [esp + 0x50], ecx
mov dword [esp + 0x60], eax
lea eax, [ecx - 1]
mov ecx, dword [esp + 0x4c]
imul eax, esi
imul ecx, dword [esp + 0xa8]
add eax, edi
sar eax, 0xa
mov dword [esp + 0x4c], ecx
lea edx, [eax + 1]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0xc0]
shl edx, 4
mov edi, dword [ebp + edx + 0x798]
lea edx, [ecx - 1]
imul edx, edi
add edx, ebx
mov ebx, dword [esp + 0x64]
sar edx, 0xa
lea ecx, [edx + 1]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x48]
mov ebp, dword [edx + 0x20]
add ebx, ecx
sar ebx, cl
mov ecx, dword [esp + 0x44]
add ebp, ecx
sar ebp, cl
cmp dword [esp + 0x40], 2
mov ecx, ebp
mov ebp, dword [esp + 0xb4]
mov ebp, dword [edx + ebp*4 + 8]
jle 0x684a8ad0
cmp dword [esp + 0x60], 2
jle 0x684a8ad0
add eax, 4
cmp eax, ebx
jge 0x684a8ad0
mov edx, dword [esp + 0x7c]
add edx, 4
cmp edx, ecx
jl 0x684a8eb0
nop
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
mov eax, dword [edi + 0x818]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x54]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x60]
mov dword [esp + 0x1c], 0x140
lea edx, [esi + 0x16380]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x18], edx
lea edx, [ebp - 3]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 8], ebx
sub edx, 3
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x74]
sub edx, ebp
lea ebp, [esi + 0x16743]
add edx, 7
mov dword [esp + 4], edx
mov edx, dword [esp + 0x70]
sub edx, dword [esp + 0x40]
add edx, 7
mov dword [esp], edx
call dword [eax + 0x14c]
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x3c], 0x140
shl eax, 4
mov edi, dword [edi + eax + 0x798]
mov eax, dword [esp + 0x5c]
mov esi, dword [eax + 0x790]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
mov edx, dword [eax + 0x818]
mov eax, dword [esp + 0x58]
and ecx, 0x3ff
and eax, 0x3ff
test ebx, ebx
je 0x684a8dc3
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x24], edi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x20], esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc4]
mov dword [esp], ebx
call dword [edx + eax*4 + 0xa8]
add esp, 0x8c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ecx + 0x500]
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x58], eax
cmp dword [ecx + 0x20], eax
jne 0x684a8914
mov ecx, dword [esp + 0x48]
mov eax, ebx
add ecx, 3
sar eax, cl
lea eax, [eax + esi]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x5c], eax
mov eax, edi
lea ecx, [esi + 3]
sar eax, cl
lea eax, [eax + ebp]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xbc]
mov ebp, dword [ebp + 0x4e8]
cmp dword [eax + 8], ebp
je 0x684a9080
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x44]
add eax, ecx
sar eax, cl
mov ecx, esi
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x58]
add eax, esi
sar eax, cl
mov dword [esp + 0x58], eax
and ebx, edx
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0xbc]
cmp ebx, 1
mov edx, dword [esp + 0xb4]
sbb ebp, ebp
imul eax, dword [esp + 0xa4]
and edi, dword [esp + 0x40]
mov esi, dword [esi + edx*4 + 8]
not ebp
and ebp, 3
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x4c]
imul eax, dword [esp + 0xa8]
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x818]
cmp ebp, dword [esp + 0x5c]
jg 0x684a8ef3
test edi, edi
je 0x684a8f70
cmp dword [esp + 0x60], 2
jg 0x684a90b1
mov esi, dword [esp + 0x54]
mov ecx, dword [eax + 0x14c]
add esi, 0x16380
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
sub edx, ebp
sub eax, 3
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x60], eax
add edx, 7
test ebx, ebx
jne 0x684a8f91
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], esi
add ebp, 0x240
mov dword [esp + 0x1c], 0xc0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call ecx
mov eax, dword [esp + 0x38]
mov dword [esp + 0x3c], 0xc0
add esi, ebp
mov eax, dword [eax + 0x818]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x68]
xor ecx, 1
shl edi, cl
mov ecx, dword [esp + 0x48]
xor ecx, 1
shl ebx, cl
test edx, edx
je 0x684a9040
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 8], esi
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x3c]
mov dword [esp], edx
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xa0]
mov dword [esp + 4], edi
mov edi, dword [esp + 0xc4]
call dword [eax + edi*4 + pe_nt_image_headers32]
jmp 0x684a8bd5
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x1c], esi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x18], ecx
mov dword [esp], eax
mov eax, dword [esp + 0xc4]
call dword [edx + eax*4 + 0xf8]
add esp, 0x8c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], 0x3cb
mov dword [esp + 4], 0x684fa910
mov dword [esp], 0x684fa938
call fcn.684d2880
jmp 0x684a8864
movsx ebx, bx
movsx edi, di
mov dword [esp + 0x44], 1
mov edx, 0xf
mov dword [esp + 0x4c], 2
mov dword [esp + 0x50], 2
mov dword [esp + 0x48], 1
mov dword [esp + 0x40], 0xf
jmp 0x684a88c5
movsx ebx, bx
movsx edi, di
mov dword [esp + 0x44], 0
mov edx, 0xf
mov dword [esp + 0x4c], 4
mov dword [esp + 0x50], 2
mov dword [esp + 0x48], 1
mov dword [esp + 0x40], 7
jmp 0x684a88c5
mov eax, dword [esp + 0x60]
imul eax, dword [esp + 0x3c]
add eax, dword [esp + 0x40]
add ebp, eax
jmp 0x684a8b64
mov dword [esp + 8], 0x3fa
mov dword [esp + 4], 0x684fa910
mov dword [esp], 0x684fa9ec
call fcn.684d2880
mov eax, dword [esp + 0xbc]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x64], eax
jmp 0x684a892a
mov esi, dword [esp + 0x54]
mov ecx, dword [eax + 0x14c]
add esi, 0x16380
test edi, edi
jne 0x684a8cd9
mov eax, dword [esp + 0x5c]
sub eax, ebp
test ebx, ebx
je 0x684a8ff0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x1c], 0xc0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], esi
add eax, 7
mov dword [esp + 0x14], edx
mov dword [esp], eax
call ecx
jmp 0x684a8d4c
mov edx, dword [esp + 0x60]
test edx, edx
jns 0x684a90b1
mov esi, dword [esp + 0x54]
mov ecx, dword [eax + 0x14c]
add esi, 0x16380
jmp 0x684a8f0b
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], esi
add ebp, 0x240
mov dword [esp + 0x1c], 0xc0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
add eax, 7
mov dword [esp], eax
call ecx
jmp 0x684a8d4c
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x1c], 0xc0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edx
mov dword [esp], eax
call ecx
jmp 0x684a8d4c
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 4], esi
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 8], edi
mov edi, dword [esp + 0x78]
mov dword [esp], edi
mov edi, dword [esp + 0xc4]
call dword [eax + edi*4 + 0xd0]
jmp 0x684a8bd5
mov eax, dword [esp + 0x38]
movzx ecx, byte [esp + 0x48]
mov esi, dword [eax + 0x860]
mov eax, dword [eax + 0x864]
shl esi, 2
shl eax, 2
sar esi, cl
movzx ecx, byte [esp + 0x44]
mov dword [esp + 0x64], esi
sar eax, cl
mov dword [esp + 0x58], eax
jmp 0x684a8c5c
mov edx, dword [esp + 0x5c]
add edx, dword [esp + 0x40]
test ebx, ebx
lea ecx, [edx + 4]
cmovne edx, ecx
cmp dword [esp + 0x64], edx
jl 0x684a8ef3
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x4c]
test edi, edi
je 0x684a90fc
add edx, 4
cmp dword [esp + 0x58], edx
jl 0x684a8cc9
mov ebp, dword [esp + 0x60]
imul ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x5c]
add esi, ebp
add esi, dword [esp + 0x50]
jmp 0x684a8d60
cmp edx, dword [esp + 0x58]
jg 0x684a8f7c
jmp 0x684a90e4