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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x54
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x88]
mov edx, dword [esp + 0x78]
sub edx, edi
mov dword [esp + 0x18], edx
lea ebp, [edx + 1]
mov ecx, dword [esp + 0x7c]
sub ecx, dword [esp + 0x74]
mov dword [esp + 8], ecx
lea esi, [ecx + 1]
cmp ebp, ebx
jl 0x43203f
mov edx, dword [esp + 0x8c]
cmp esi, edx
jl 0x43203f
lea edx, [ebx + ebx]
mov dword [esp + 0x50], edx
test edx, edx
jle 0x431ac7
lea edx, [ebx + ebx]
cmp edx, 6
jl 0x4320a9
xor ecx, ecx
mov dword [esp + 4], ecx
lea edx, [ebx + ebx - 6]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x18]
lea ecx, [edx + edx + 2]
mov dword [esp + 0x48], ecx
lea ecx, [edx + edx + 2]
lea ecx, [ecx + edx + 1]
mov dword [esp + 0x38], ecx
lea ecx, [edx*4 + 4]
mov dword [esp + 0x3c], ecx
xor ecx, ecx
mov dword [esp + 0x40], ecx
lea ecx, [edx + edx + 2]
add ecx, ecx
lea ecx, [ecx + edx + 1]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ebp
lea ecx, [edx + edx + 2]
add ecx, ecx
lea ecx, [ecx + edx + 1]
mov dword [esp + 0x1c], ecx
lea ecx, [edx + edx + 2]
add ecx, ecx
lea ecx, [ecx + edx + 1]
mov dword [esp + 0x20], ecx
lea ecx, [edx + edx + 2]
add ecx, ecx
lea ecx, [ecx + edx + 1]
mov dword [esp + 0x4c], ecx
lea ecx, [edx + edx + 2]
add ecx, ecx
lea ecx, [ecx + edx + 1]
mov edx, dword [esp + 4]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], esi
mov dword [esp], ebp
mov ebx, edx
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x40]
cdq
idiv edi
add eax, eax
add eax, eax
mov dword [ebx*4 + 0x7a7500], eax
mov eax, ecx
cdq
idiv edi
add eax, eax
add eax, eax
mov dword [ebx*4 + 0x7a7504], eax
mov eax, dword [esp + 0x48]
cdq
idiv edi
add eax, eax
add eax, eax
mov dword [ebx*4 + 0x7a7508], eax
mov eax, ebp
cdq
idiv edi
add eax, eax
add eax, eax
mov dword [ebx*4 + 0x7a750c], eax
mov eax, esi
cdq
idiv edi
add eax, eax
add eax, eax
mov dword [ebx*4 + 0x7a7510], eax
mov ecx, dword [esp + 0x40]
add ecx, dword [esp + 0x30]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x34]
add ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0x20]
mov dword [esp + 0x48], eax
add ebp, dword [esp + 0x4c]
add esi, dword [esp + 0x18]
add ebx, 5
mov eax, dword [esp + 0x44]
cmp ebx, eax
jle 0x4319e9
mov edx, ebx
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp]
mov ebx, dword [esp + 0x88]
mov eax, dword [esp + 0x80]
mov edi, dword [esp + 0x70]
mov ecx, edx
imul ecx, ebp
mov ebx, edx
mov edi, dword [esp + 0x50]
mov eax, ecx
cdq
idiv edi
add eax, eax
add eax, eax
mov dword [ebx*4 + 0x7a7500], eax
add ecx, ebp
inc ebx
cmp ebx, edi
jl 0x431a9e
mov ebx, dword [esp + 0x88]
mov eax, dword [esp + 0x80]
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x8c]
lea ecx, [edx + edx]
mov dword [esp + 0x50], ecx
test ecx, ecx
jle 0x431c3c
mov edx, dword [esp + 0x8c]
lea ecx, [edx + edx]
cmp ecx, 6
jl 0x4320a2
xor ecx, ecx
mov ebp, dword [esp + 0x8c]
lea edx, [ebp + ebp - 6]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 8]
lea ebp, [edx + edx + 2]
mov dword [esp + 0x48], ebp
lea ebp, [edx + edx + 2]
lea ebp, [ebp + edx + 1]
mov dword [esp + 0x38], ebp
lea ebp, [edx*4 + 4]
mov dword [esp + 0x3c], ebp
xor ebp, ebp
mov dword [esp + 0x40], ebp
lea ebp, [edx + edx + 2]
add ebp, ebp
lea ebp, [ebp + edx + 1]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x34], esi
lea ebp, [edx + edx + 2]
add ebp, ebp
lea ebp, [ebp + edx + 1]
mov dword [esp + 0x20], ebp
lea ebp, [edx + edx + 2]
add ebp, ebp
lea ebp, [ebp + edx + 1]
mov dword [esp + 0x4c], ebp
lea ebp, [edx + edx + 2]
add ebp, ebp
lea ebp, [ebp + edx + 1]
mov dword [esp + 0x30], ebp
lea ebp, [edx + edx + 2]
add ebp, ebp
lea edx, [ebp + edx + 1]
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], esi
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x34], ebx
mov eax, dword [esp + 0x40]
cdq
idiv edi
mov dword [ecx*4 + 0x797400], eax
mov eax, ebx
cdq
idiv edi
mov dword [ecx*4 + 0x797404], eax
mov eax, dword [esp + 0x48]
cdq
idiv edi
mov dword [ecx*4 + 0x797408], eax
mov eax, ebp
cdq
idiv edi
mov dword [ecx*4 + 0x79740c], eax
mov eax, esi
cdq
idiv edi
mov dword [ecx*4 + 0x797410], eax
mov ebx, dword [esp + 0x40]
add ebx, dword [esp + 0x1c]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x34]
add ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x48]
add edx, dword [esp + 0x4c]
mov dword [esp + 0x48], edx
add ebp, dword [esp + 0x30]
add esi, dword [esp + 0x18]
add ecx, 5
mov edx, dword [esp + 0x44]
cmp ecx, edx
jle 0x431b88
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x88]
mov eax, dword [esp + 0x80]
mov edi, dword [esp + 0x70]
mov ebp, ecx
imul ebp, esi
mov edi, dword [esp + 0x50]
mov eax, ebp
cdq
idiv edi
mov dword [ecx*4 + 0x797400], eax
add ebp, esi
inc ecx
cmp ecx, edi
jl 0x431c1e
mov eax, dword [esp + 0x80]
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x30], edx
test edx, edx
jle 0x43209b
xor ebp, ebp
xor edx, edx
mov edi, dword [esp + 0x8c]
mov esi, dword [esp + 0x74]
mov ecx, dword [edx*8 + 0x797400]
add ecx, esi
test ecx, ecx
jge 0x431c6e
lea ebp, [edx + 1]
cmp ecx, dword [esp + 0x84]
jge 0x43208e
inc edx
cmp edx, edi
jl 0x431c5e
mov edi, dword [esp + 0x70]
mov dword [esp + 0x18], ebx
test ebx, ebx
jle 0x432087
xor esi, esi
xor edx, edx
mov ecx, dword [edx*8 + 0x7a7500]
sar ecx, 2
add ecx, edi
test ecx, ecx
jge 0x431ca7
lea esi, [edx + 1]
cmp ecx, eax
jge 0x43207e
inc edx
cmp edx, ebx
jl 0x431c94
mov edx, dword [esp + 0x30]
cmp ebp, edx
jge 0x431cc4
mov edx, dword [esp + 0x18]
cmp esi, edx
jl 0x431ce5
lea eax, [ebx + ebx]
add eax, eax
imul eax, dword [esp + 0x8c]
push eax
mov edx, dword [esp + 0x6c]
push edx
call dword [0x5b1480]
add esp, 0x5c
pop ebx
pop ebp
pop esi
pop edi
ret
lea edx, [ebx + ebx]
add edx, edx
mov dword [esp + 0x3c], edx
mov ecx, ebp
imul ecx, edx
push ecx
mov edx, dword [esp + 0x6c]
push edx
call dword [0x5b1480]
mov eax, dword [esp + 0x88]
add esp, 8
mov dword [esp + 4], ebp
mov dword [esp + 0x40], esi
mov ebp, dword [esp + 0x30]
mov esi, ebp
mov ecx, dword [esp + 0x3c]
imul esi, ecx
add esi, dword [esp + 0x68]
mov edx, dword [esp + 0x8c]
imul edx, ecx
neg ebp
imul ebp, ecx
add edx, ebp
push edx
push esi
mov esi, dword [esp + 0x48]
mov ebp, dword [esp + 0xc]
call dword [0x5b1480]
mov eax, dword [esp + 0x88]
add esp, 8
mov dword [esp + 0x24], esi
mov edx, dword [esp + 0x30]
dec edx
mov dword [esp + 0x30], edx
mov ecx, dword [esp + 0x18]
sub ecx, esi
mov dword [esp + 0x14], ecx
cmp ebp, edx
jge 0x432047
add esi, esi
add esi, esi
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x18]
lea ecx, [esi + esi]
add ecx, ecx
mov edx, dword [esp + 0x68]
add ecx, edx
mov dword [esp + 8], ecx
sub ebx, esi
add ebx, ebx
add ebx, ebx
mov dword [esp + 0x38], ebx
lea eax, [eax + eax]
add eax, eax
lea ebx, [edi + edi]
add ebx, ebx
mov edi, dword [esp + 0x6c]
lea esi, [edi + ebx]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x74]
imul esi, eax
mov dword [esp + 0x34], esi
mov edi, ebp
mov esi, dword [esp + 0x3c]
imul edi, esi
mov dword [esp + 0x44], edi
mov edi, ebp
imul edi, esi
add edi, edx
mov edx, ebp
imul edx, esi
add edx, ecx
mov dword [esp + 0x50], edx
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp], ebx
mov dword [esp + 0x40], esi
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x40]
push eax
mov edx, dword [esp + 0x4c]
push edx
call dword [0x5b1480]
add esp, 8
mov eax, dword [esp + 0x38]
push eax
mov edx, dword [esp + 0x54]
push edx
call dword [0x5b1480]
add esp, 8
mov eax, dword [esp + 0x24]
add eax, eax
add eax, eax
add eax, dword [esp + 0x68]
add eax, dword [esp + 0x44]
mov dword [esp + 0x28], eax
mov edx, dword [ebp*8 + 0x797400]
mov ecx, dword [esp + 0x2c]
imul edx, ecx
mov ebx, dword [esp + 0x34]
add edx, ebx
mov esi, dword [esp + 0x4c]
add edx, esi
mov dword [esp + 0xc], edx
mov edi, dword [ebp*8 + 0x797404]
imul edi, ecx
add edi, ebx
add edi, esi
mov dword [esp + 0x10], edi
movzx eax, byte [0x5b14ec]
test eax, eax
je 0x431ec1
movzx eax, byte [0x59404c]
test eax, eax
je 0x431ec1
mov edi, dword [esp + 0x28]
lea edx, [0x7a7500]
mov eax, dword [esp + 0x24]
shl eax, 3
add edx, eax
mov eax, dword [esp + 0x14]
lea ebx, [esp + 0xc]
movd mm2, dword [ebx]
movd mm3, dword [ebx + 4]
mov ebx, dword [edx]
mov ecx, dword [edx + 4]
movd esi, mm2
movd mm0, dword [esi + ebx]
movd mm1, dword [esi + ecx]
pavgb mm0, mm1
movd esi, mm3
movd mm1, dword [esi + ebx]
pavgb mm0, mm1
movd mm1, dword [esi + ecx]
pavgb mm0, mm1
movd dword [edi], mm0
add edi, 4
add edx, 8
dec eax
jne 0x431e8d
emms
jmp 0x431f2b
mov edi, dword [esp + 0x28]
lea edx, [0x7a7500]
mov eax, dword [esp + 0x24]
shl eax, 3
add edx, eax
mov eax, dword [esp + 0x14]
lea ebx, [esp + 0xc]
movd mm2, dword [ebx]
movd mm3, dword [ebx + 4]
pxor mm7, mm7
mov ebx, dword [edx]
mov ecx, dword [edx + 4]
movd esi, mm2
movd mm0, dword [esi + ebx]
punpcklbw mm0, mm7
movd mm1, dword [esi + ecx]
punpcklbw mm1, mm7
paddusw mm0, mm1
movd esi, mm3
movd mm1, dword [esi + ebx]
punpcklbw mm1, mm7
paddusw mm0, mm1
movd mm1, dword [esi + ecx]
punpcklbw mm1, mm7
paddusw mm0, mm1
psrlw mm0, 2
packuswb mm0, mm1
movd dword [edi], mm0
add edi, 4
add edx, 8
dec eax
jne 0x431ee6
emms
mov eax, dword [esp + 0x3c]
add dword [esp + 0x44], eax
add dword [esp + 0x48], eax
add dword [esp + 0x50], eax
inc ebp
mov edx, dword [esp + 0x30]
cmp ebp, edx
jl 0x431deb
mov ebx, dword [esp]
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x30]
lea edx, [eax + eax]
sar edx, 1
mov ebp, dword [esp + 0x3c]
imul ebp, edx
mov dword [esp + 0x3c], ebp
mov ecx, dword [esp + 0x68]
lea ebp, [ecx + ebp]
push esi
push ebp
call dword [0x5b1480]
add esp, 8
mov edx, dword [esp + 0x3c]
add edx, dword [esp + 8]
mov eax, dword [esp + 0x38]
push eax
push edx
call dword [0x5b1480]
add esp, 8
add ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x24]
add esi, esi
mov eax, dword [esp + 0x18]
add eax, eax
mov dword [esp + 0x18], eax
cmp esi, eax
jge 0x43203f
mov dword [esp], ebx
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x6c]
mov dword [esp + 4], esi
mov eax, dword [esp + 0x30]
mov eax, dword [eax*8 + 0x797400]
add eax, dword [esp]
mov edx, dword [esi*4 + 0x7a7500]
add edx, eax
movzx ebx, byte [edx + ebp]
movzx ecx, byte [edx + ebp + 1]
movzx edi, byte [edx + ebp + 2]
movzx edx, byte [edx + ebp + 3]
mov dword [esp + 0x50], edx
add eax, dword [esi*4 + 0x7a7504]
movzx edx, byte [eax + ebp]
add edx, ebx
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + ebp + 1]
add edx, ecx
mov dword [esp + 0x20], edx
movzx ecx, byte [eax + ebp + 2]
add ecx, edi
movzx ebx, byte [eax + ebp + 3]
add ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
sar eax, 1
mov edi, dword [esp + 0x2c]
mov byte [edi + esi*2], al
sar edx, 1
mov byte [edi + esi*2 + 1], dl
sar ecx, 1
mov byte [edi + esi*2 + 2], cl
sar ebx, 1
mov byte [edi + esi*2 + 3], bl
add esi, 2
mov eax, dword [esp + 0x18]
cmp esi, eax
jl 0x431fb3
add esp, 0x54
pop ebx
pop ebp
pop esi
pop edi
ret
add esi, esi
add esi, esi
mov ecx, dword [esp + 0x18]
lea edx, [ecx + ecx]
add edx, edx
add edx, dword [esp + 0x68]
mov dword [esp + 8], edx
sub ebx, ecx
add ebx, ebx
add ebx, ebx
mov dword [esp + 0x38], ebx
lea eax, [eax + eax]
add eax, eax
lea ebx, [edi + edi]
add ebx, ebx
imul eax, dword [esp + 0x74]
mov dword [esp + 0x34], eax
jmp 0x431f4f
mov dword [esp + 0x18], edx
jmp 0x431cb4
xor esi, esi
jmp 0x431cb4
mov edi, dword [esp + 0x70]
mov dword [esp + 0x30], edx
jmp 0x431c84
xor ebp, ebp
jmp 0x431c84
xor ecx, ecx
jmp 0x431c15
xor edx, edx
jmp 0x431a93