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

Disassembly:
mov eax, dword [esp + 0xc]
sub esp, 0xc
push ebx
push ebp
add eax, 0xfffffffd
cmp eax, 0xb
push esi
push edi
ja case.default.0x450957
jmp dword [eax*4 + 0x4513e8]
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
movzx eax, word [ebx + 6]
movzx edi, word [ecx + 4]
movzx edx, word [ecx + 6]
movzx ebp, word [ebx + 4]
mov dword [esp + 0x28], eax
mov esi, 0xff
sub esi, eax
mov eax, edi
sub eax, edx
add eax, 0xff
imul eax, ebp
mov ebp, esi
imul ebp, edi
add eax, ebp
mov edi, eax
sar edi, 8
lea eax, [edi + eax + 1]
movzx edi, word [ecx + 2]
sar eax, 8
mov word [ecx + 4], ax
movzx ebp, word [ebx + 2]
mov eax, edi
imul edi, esi
sub eax, edx
add eax, 0xff
imul eax, ebp
add eax, edi
mov edi, eax
sar edi, 8
lea eax, [edi + eax + 1]
movzx edi, word [ecx]
sar eax, 8
mov word [ecx + 2], ax
movzx ebx, word [ebx]
mov eax, edi
imul edi, esi
sub eax, edx
add eax, 0xff
imul eax, ebx
add eax, edi
mov esi, eax
sar esi, 8
lea eax, [esi + eax + 1]
sar eax, 8
cmp edx, 0xff
mov word [ecx], ax
je 0x4513e0
mov esi, dword [esp + 0x28]
mov eax, esi
xor eax, 0xff
imul eax, edx
jmp 0x450dd9
mov esi, dword [esp + 0x20]
movzx ecx, word [esi + 6]
mov eax, dword [esp + 0x24]
mov di, word [eax + 4]
mov dword [esp + 0x28], ecx
mov cx, word [esi + 4]
movzx edx, cx
movzx ebp, di
imul edx, ebp
mov ebp, edx
sar ebp, 8
lea edx, [edx + ebp + 1]
sar edx, 8
sub ecx, edx
add ecx, edi
mov di, word [eax + 2]
mov word [eax + 4], cx
mov cx, word [esi + 2]
movzx edx, cx
movzx ebp, di
imul edx, ebp
mov ebp, edx
sar ebp, 8
lea edx, [edx + ebp + 1]
sar edx, 8
sub ecx, edx
add ecx, edi
movzx ebx, word [eax + 6]
mov word [eax + 2], cx
mov cx, word [esi]
mov si, word [eax]
movzx edx, cx
movzx edi, si
imul edx, edi
mov edi, edx
sar edi, 8
lea edx, [edi + edx + 1]
sar edx, 8
sub ecx, edx
add ecx, esi
cmp ebx, 0xff
mov word [eax], cx
je 0x4513e0
mov edx, dword [esp + 0x28]
mov ecx, edx
xor ecx, 0xff
imul ecx, ebx
mov esi, ecx
sar esi, 8
lea ecx, [esi + ecx + 1]
pop edi
pop esi
sar ecx, 8
add ecx, edx
pop ebp
mov word [eax + 6], cx
pop ebx
add esp, 0xc
ret
mov esi, dword [esp + 0x24]
movzx edi, word [esi + 6]
movzx ebx, word [esi + 4]
mov ebp, dword [esp + 0x20]
movzx ecx, word [ebp + 6]
mov eax, edi
cdq
sub eax, edx
sar eax, 1
cmp ebx, eax
mov dword [esp + 0x28], eax
jg 0x450b16
movzx eax, word [ebp + 4]
lea edx, [ebx + ebx]
sub edx, edi
add edx, 0xff
imul edx, eax
mov eax, 0xff
sub eax, ecx
imul eax, ebx
add edx, eax
mov eax, edx
sar eax, 8
lea edx, [eax + edx + 1]
sar edx, 8
jmp 0x450b4b
movzx ebx, word [ebp + 4]
lea eax, [ebx + ebx]
mov edx, ecx
sub edx, eax
movzx eax, word [esi + 4]
imul edx, eax
sub ebx, ecx
imul ebx, edi
add edx, ebx
mov eax, edx
sar eax, 8
lea edx, [eax + edx + 1]
xor eax, eax
mov ax, word [ebp + 4]
sar edx, 8
add edx, eax
xor eax, eax
mov ax, word [esi + 4]
add edx, eax
movzx eax, word [esi + 2]
mov word [esi + 4], dx
cmp eax, dword [esp + 0x28]
movzx ebx, word [ebp + 2]
mov dword [esp + 0x14], eax
jg 0x450b89
lea edx, [eax + eax]
sub edx, edi
add edx, 0xff
imul edx, ebx
mov ebx, 0xff
sub ebx, ecx
imul ebx, eax
add edx, ebx
mov eax, edx
sar eax, 8
lea edx, [eax + edx + 1]
sar edx, 8
jmp 0x450bb8
lea eax, [ebx + ebx]
mov edx, ecx
sub edx, eax
imul edx, dword [esp + 0x14]
sub ebx, ecx
imul ebx, edi
add edx, ebx
mov eax, edx
sar eax, 8
lea edx, [eax + edx + 1]
xor eax, eax
mov ax, word [ebp + 2]
sar edx, 8
add edx, eax
xor eax, eax
mov ax, word [esi + 2]
add edx, eax
movzx ebx, word [esi]
cmp ebx, dword [esp + 0x28]
mov word [esi + 2], dx
jg 0x450bf3
movzx edx, word [ebp]
lea eax, [ebx + ebx]
sub eax, edi
add eax, 0xff
imul eax, edx
mov edx, 0xff
sub edx, ecx
imul edx, ebx
add eax, edx
mov edx, eax
sar edx, 8
lea eax, [edx + eax + 1]
sar eax, 8
mov word [esi], ax
jmp 0x450c2d
movzx ebp, word [ebp]
movzx edx, bp
lea eax, [edx + edx]
sub edx, ecx
mov dword [esp + 0x28], ebp
imul edx, edi
mov ebp, eax
mov eax, ecx
sub eax, ebp
mov ebp, dword [esp + 0x28]
imul eax, ebx
add eax, edx
mov edx, eax
sar edx, 8
lea edx, [edx + eax + 1]
xor eax, eax
mov ax, word [esi]
sar edx, 8
add edx, ebp
add edx, eax
mov word [esi], dx
cmp edi, 0xff
je 0x4513e0
mov eax, ecx
xor eax, 0xff
imul eax, edi
mov edx, eax
sar edx, 8
lea eax, [edx + eax + 1]
sar eax, 8
pop edi
add eax, ecx
mov word [esi + 6], ax
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov ebp, dword [esp + 0x20]
movzx esi, word [ebp + 6]
movzx edi, word [ebp + 4]
mov ecx, dword [esp + 0x24]
movzx ebx, word [ecx + 6]
mov eax, esi
cdq
sub eax, edx
sar eax, 1
cmp edi, eax
mov dword [esp + 0x10], eax
jg 0x450cac
movzx eax, word [ecx + 4]
lea edx, [eax + eax]
sub edx, ebx
add edx, 0xff
imul edx, edi
mov edi, 0xff
sub edi, esi
imul edi, eax
add edx, edi
mov eax, edx
sar eax, 8
lea edx, [eax + edx + 1]
sar edx, 8
jmp 0x450ce1
movzx edi, word [ebp + 4]
lea eax, [edi + edi]
mov edx, esi
sub edx, eax
movzx eax, word [ecx + 4]
imul edx, eax
sub edi, esi
imul edi, ebx
add edx, edi
mov eax, edx
sar eax, 8
lea edx, [eax + edx + 1]
xor eax, eax
mov ax, word [ebp + 4]
sar edx, 8
add edx, eax
xor eax, eax
mov ax, word [ecx + 4]
add edx, eax
mov eax, dword [esp + 0x10]
mov word [ecx + 4], dx
movzx edi, word [ebp + 2]
cmp edi, eax
jg 0x450d1d
movzx eax, word [ecx + 2]
lea edx, [eax + eax]
sub edx, ebx
add edx, 0xff
imul edx, edi
mov edi, 0xff
sub edi, esi
imul edi, eax
add edx, edi
mov eax, edx
sar eax, 8
lea edx, [eax + edx + 1]
sar edx, 8
jmp 0x450d52
movzx edi, word [ebp + 2]
lea eax, [edi + edi]
mov edx, esi
sub edx, eax
movzx eax, word [ecx + 2]
imul edx, eax
sub edi, esi
imul edi, ebx
add edx, edi
mov eax, edx
sar eax, 8
lea edx, [eax + edx + 1]
xor eax, eax
mov ax, word [ebp + 2]
sar edx, 8
add edx, eax
xor eax, eax
mov ax, word [ecx + 2]
add edx, eax
mov eax, dword [esp + 0x10]
mov word [ecx + 2], dx
movzx ebp, word [ebp]
movzx edx, bp
cmp edx, eax
mov dword [esp + 0x28], ebp
jg 0x450d93
movzx edi, word [ecx]
lea eax, [edi + edi]
sub eax, ebx
add eax, 0xff
imul eax, edx
mov edx, 0xff
sub edx, esi
imul edx, edi
add eax, edx
mov edx, eax
sar edx, 8
lea eax, [edx + eax + 1]
sar eax, 8
jmp 0x450dc0
mov di, word [ecx]
lea eax, [edx + edx]
mov ebp, eax
mov eax, esi
sub eax, ebp
movzx ebp, di
imul eax, ebp
mov ebp, dword [esp + 0x28]
sub edx, esi
imul edx, ebx
add eax, edx
mov edx, eax
sar edx, 8
lea eax, [edx + eax + 1]
sar eax, 8
add eax, ebp
add eax, edi
cmp ebx, 0xff
mov word [ecx], ax
je 0x4513e0
mov eax, esi
xor eax, 0xff
imul eax, ebx
mov edx, eax
sar edx, 8
lea eax, [edx + eax + 1]
pop edi
sar eax, 8
add eax, esi
pop esi
pop ebp
mov word [ecx + 6], ax
pop ebx
add esp, 0xc
ret
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
movzx edx, word [edi + 6]
movzx esi, word [eax + 4]
movzx ebx, word [eax + 2]
mov dword [esp + 0x18], edx
mov ecx, 0xff
sub ecx, edx
mov edx, ecx
imul edx, esi
mov esi, edx
movzx ebp, word [edi + 4]
sar esi, 8
lea edx, [esi + edx + 1]
mov esi, ecx
imul esi, ebx
movzx ebx, word [edi + 2]
movzx edi, word [edi]
mov dword [esp + 0x10], ebx
mov ebx, esi
sar ebx, 8
lea esi, [ebx + esi + 1]
mov ebx, dword [esp + 0x10]
sar esi, 8
add esi, ebx
movzx ebx, word [eax]
imul ecx, ebx
mov dword [esp + 0x28], edi
mov ebx, ecx
sar ebx, 8
lea ecx, [ebx + ecx + 1]
movzx ebx, word [eax + 6]
sar ecx, 8
add ecx, edi
mov edi, 0xff
sub edi, ebx
mov ebx, edi
imul ebx, ebp
sar edx, 8
add edx, ebp
mov ebp, ebx
sar ebp, 8
lea ebx, [ebx + ebp + 1]
movzx ebp, word [eax + 4]
sar ebx, 8
add ebx, ebp
mov dword [esp + 0x14], ebx
mov ebx, edi
imul edi, dword [esp + 0x28]
imul ebx, dword [esp + 0x10]
mov ebp, ebx
sar ebp, 8
lea ebx, [ebx + ebp + 1]
movzx ebp, word [eax + 2]
sar ebx, 8
add ebx, ebp
mov ebp, edi
sar ebp, 8
lea edi, [edi + ebp + 1]
movzx ebp, word [eax]
sar edi, 8
add edi, ebp
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x28], edi
mov edi, edx
sub edi, ebp
mov ebp, edx
xor ebp, dword [esp + 0x14]
sar edi, 0x1f
and edi, ebp
xor edi, edx
mov edx, esi
mov word [eax + 4], di
sub edx, ebx
mov edi, esi
sar edx, 0x1f
xor edi, ebx
and edx, edi
xor edx, esi
mov word [eax + 2], dx
mov esi, ecx
mov edx, dword [esp + 0x28]
sub esi, edx
mov edi, ecx
sar esi, 0x1f
xor edi, edx
and esi, edi
xor esi, ecx
movzx ecx, word [eax + 6]
cmp ecx, 0xff
mov word [eax], si
je 0x4513e0
mov esi, dword [esp + 0x18]
mov edx, esi
xor edx, 0xff
imul edx, ecx
mov ecx, edx
sar ecx, 8
lea edx, [ecx + edx + 1]
pop edi
sar edx, 8
add edx, esi
pop esi
pop ebp
mov word [eax + 6], dx
pop ebx
add esp, 0xc
ret
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
movzx ecx, word [ebx + 6]
movzx eax, word [esi + 4]
movzx edi, word [ebx + 2]
mov edx, 0xff
sub edx, ecx
imul eax, edx
mov dword [esp + 0x10], ecx
mov ecx, eax
sar ecx, 8
lea eax, [ecx + eax + 1]
movzx ecx, word [esi + 2]
imul ecx, edx
movzx ebp, word [ebx + 4]
mov dword [esp + 0x14], edi
movzx ebx, word [ebx]
mov edi, ecx
sar edi, 8
lea ecx, [edi + ecx + 1]
mov edi, dword [esp + 0x14]
sar ecx, 8
add ecx, edi
movzx edi, word [esi]
imul edi, edx
mov edx, edi
mov dword [esp + 0x28], ebx
sar edx, 8
lea edx, [edx + edi + 1]
movzx edi, word [esi + 6]
sar edx, 8
add edx, ebx
mov ebx, 0xff
sub ebx, edi
mov edi, ebx
imul edi, ebp
mov dword [esp + 0x18], ebx
imul ebx, dword [esp + 0x14]
sar eax, 8
add eax, ebp
mov ebp, edi
sar ebp, 8
lea edi, [edi + ebp + 1]
movzx ebp, word [esi + 4]
sar edi, 8
add edi, ebp
mov ebp, ebx
sar ebp, 8
lea ebx, [ebx + ebp + 1]
movzx ebp, word [esi + 2]
sar ebx, 8
add ebx, ebp
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x28]
imul ebx, dword [esp + 0x18]
mov ebp, ebx
sar ebp, 8
lea ebx, [ebx + ebp + 1]
movzx ebp, word [esi]
sar ebx, 8
add ebx, ebp
mov ebp, eax
sub ebp, edi
xor eax, edi
sar ebp, 0x1f
and ebp, eax
mov eax, dword [esp + 0x14]
xor ebp, edi
mov edi, ecx
sub edi, eax
xor ecx, eax
sar edi, 0x1f
and edi, ecx
xor edi, eax
mov eax, edx
sub eax, ebx
sar eax, 0x1f
xor edx, ebx
mov word [esi + 4], bp
mov word [esi + 2], di
and eax, edx
xor eax, ebx
mov word [esi], ax
movzx eax, word [esi + 6]
cmp eax, 0xff
je 0x4513e0
mov edx, dword [esp + 0x10]
mov ecx, edx
xor ecx, 0xff
imul ecx, eax
mov eax, ecx
sar eax, 8
lea ecx, [eax + ecx + 1]
sar ecx, 8
pop edi
add ecx, edx
mov word [esi + 6], cx
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
movzx ecx, word [edx + 4]
movzx esi, word [eax + 4]
add ecx, esi
mov edi, ecx
xor edi, 0xff
mov esi, 0xff
sub esi, ecx
sar esi, 0x1f
and esi, edi
xor esi, ecx
mov word [eax + 4], si
movzx ecx, word [edx + 2]
movzx esi, word [eax + 2]
add ecx, esi
mov edi, ecx
mov esi, 0xff
sub esi, ecx
sar esi, 0x1f
xor edi, 0xff
and esi, edi
xor esi, ecx
mov word [eax + 2], si
movzx ecx, word [edx]
movzx esi, word [eax]
add ecx, esi
mov esi, 0xff
sub esi, ecx
sar esi, 0x1f
mov edi, ecx
xor edi, 0xff
and esi, edi
xor esi, ecx
mov word [eax], si
movzx ecx, word [edx + 6]
movzx edx, word [eax + 6]
add ecx, edx
mov edx, 0xff
sub edx, ecx
mov esi, ecx
xor esi, 0xff
sar edx, 0x1f
pop edi
and edx, esi
pop esi
xor edx, ecx
pop ebp
mov word [eax + 6], dx
pop ebx
add esp, 0xc
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
movzx esi, word [edx + 4]
movzx ecx, word [eax + 4]
sub ecx, esi
mov esi, ecx
neg esi
sar esi, 0x1f
and esi, ecx
movzx ecx, word [eax + 2]
mov word [eax + 4], si
movzx esi, word [edx + 2]
sub ecx, esi
mov esi, ecx
neg esi
sar esi, 0x1f
and esi, ecx
movzx ecx, word [eax]
mov word [eax + 2], si
movzx esi, word [edx]
sub ecx, esi
mov esi, ecx
neg esi
sar esi, 0x1f
and esi, ecx
mov word [eax], si
movzx ecx, word [edx + 6]
movzx edx, word [eax + 6]
add ecx, edx
mov edx, 0xff
sub edx, ecx
mov esi, ecx
xor esi, 0xff
sar edx, 0x1f
pop edi
and edx, esi
pop esi
xor edx, ecx
pop ebp
mov word [eax + 6], dx
pop ebx
add esp, 0xc
ret
mov ecx, dword [esp + 0x24]
mov dx, word [ecx + 4]
mov eax, dword [esp + 0x20]
movzx eax, word [eax + 6]
movzx esi, dx
imul esi, eax
mov ebx, esi
sar ebx, 8
lea esi, [ebx + esi + 1]
sar esi, 8
shl esi, 1
sub edx, esi
add edx, eax
mov word [ecx + 4], dx
mov dx, word [ecx + 2]
movzx esi, dx
imul esi, eax
mov ebx, esi
sar ebx, 8
lea esi, [ebx + esi + 1]
sar esi, 8
shl esi, 1
sub edx, esi
add edx, eax
movzx edi, word [ecx + 6]
mov word [ecx + 2], dx
mov dx, word [ecx]
movzx esi, dx
imul esi, eax
mov ebx, esi
sar ebx, 8
lea esi, [ebx + esi + 1]
sar esi, 8
shl esi, 1
sub edx, esi
add edx, eax
cmp edi, 0xff
mov word [ecx], dx
je 0x4513e0
mov edx, eax
xor edx, 0xff
imul edx, edi
mov esi, edx
sar esi, 8
lea edx, [esi + edx + 1]
pop edi
pop esi
sar edx, 8
add edx, eax
pop ebp
mov word [ecx + 6], dx
pop ebx
add esp, 0xc
ret
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
movzx ebp, word [eax + 6]
movzx edx, word [eax + 4]
movzx ebx, word [ecx + 6]
mov si, word [ecx + 4]
imul edx, ebx
movzx edi, si
imul edi, ebp
mov eax, edx
sub eax, edi
sar eax, 0x1f
xor edx, edi
and eax, edx
xor eax, edi
mov edx, eax
sar edx, 8
lea eax, [edx + eax + 1]
mov edx, dword [esp + 0x20]
sar eax, 8
shl eax, 1
sub esi, eax
xor eax, eax
mov ax, word [edx + 4]
add esi, eax
mov eax, edx
mov word [ecx + 4], si
movzx edx, word [eax + 2]
mov si, word [ecx + 2]
imul edx, ebx
movzx edi, si
imul edi, ebp
mov eax, edx
sub eax, edi
sar eax, 0x1f
xor edx, edi
and eax, edx
xor eax, edi
mov edx, eax
sar edx, 8
lea eax, [edx + eax + 1]
mov edx, dword [esp + 0x20]
sar eax, 8
shl eax, 1
sub esi, eax
xor eax, eax
mov ax, word [edx + 2]
add esi, eax
mov eax, edx
mov word [ecx + 2], si
mov di, word [eax]
movzx esi, word [ecx]
movzx edx, di
imul esi, ebp
imul edx, ebx
mov eax, edx
sub eax, esi
sar eax, 0x1f
xor edx, esi
and eax, edx
xor eax, esi
mov edx, eax
sar edx, 8
lea eax, [edx + eax + 1]
sar eax, 8
shl eax, 1
sub edi, eax
xor eax, eax
mov ax, word [ecx]
add edi, eax
cmp ebx, 0xff
mov word [ecx], di
je 0x4513e0
mov eax, ebp
xor eax, 0xff
imul eax, ebx
mov edx, eax
sar edx, 8
lea eax, [edx + eax + 1]
pop edi
sar eax, 8
pop esi
add eax, ebp
pop ebp
mov word [ecx + 6], ax
pop ebx
add esp, 0xc
ret
mov ecx, dword [esp + 0x20]
movzx eax, word [ecx + 6]
mov ecx, dword [esp + 0x24]
shl eax, 8
mov edx, eax
sar edx, 8
lea eax, [edx + eax + 1]
mov edx, dword [ecx]
sar eax, 8
imul edx, eax
shr edx, 8
and edx, 0xff00ff
mov dword [ecx], edx
mov edx, dword [ecx + 4]
imul edx, eax
pop edi
pop esi
shr edx, 8
and edx, 0xff00ff
pop ebp
mov dword [ecx + 4], edx
pop ebx
add esp, 0xc
ret
mov eax, dword [esp + 0x20]
movzx eax, word [eax + 6]
xor eax, 0xff
shl eax, 8
mov ecx, eax
sar ecx, 8
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
sar eax, 8
imul edx, eax
shr edx, 8
and edx, 0xff00ff
mov dword [ecx], edx
mov edx, dword [ecx + 4]
imul edx, eax
pop edi
pop esi
shr edx, 8
and edx, 0xff00ff
pop ebp
mov dword [ecx + 4], edx
pop ebx
add esp, 0xc
ret
mov esi, dword [esp + 0x20]
movzx eax, word [esi + 6]
mov edx, dword [esp + 0x24]
mov edi, dword [edx]
mov ebx, dword [esi + 4]
mov ecx, 0x100
sub ecx, eax
mov eax, dword [edx + 4]
imul edi, ecx
imul eax, ecx
shr eax, 8
add eax, ebx
mov ebx, dword [esi]
shr edi, 8
and eax, 0xff00ff
add edi, ebx
and edi, 0xff00ff
mov dword [edx], edi
mov dword [edx + 4], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret