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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov edi, dword [esp + 0x30]
movzx eax, byte [edi + 0x153]
test eax, eax
je 0x5405c2
mov esi, dword [edi + 0xfc]
mov ecx, dword [edi + 0x120]
mov dword [esp + 0xc], ecx
movzx ecx, byte [edi + 0x149]
mov dword [esp + 4], ecx
mov ecx, dword [edi + 0x12c]
test ecx, ecx
mov dword [esp], eax
je 0x53fc66
cmp al, 8
jb 0x53fc50
mov edx, eax
shr edx, 3
imul edx, esi
jmp 0x53fc5b
mov edx, esi
imul edx, eax
add edx, 7
shr edx, 3
cmp ecx, edx
mov eax, dword [esp]
jne 0x5405db
test esi, esi
je 0x5405cd
mov ebp, dword [esp + 0x34]
mov ebx, esi
imul ebx, eax
mov ecx, ebx
and ecx, 7
mov dword [esp + 8], esi
je 0x53fcba
mov edx, eax
shr edx, 3
imul edx, esi
lea edi, [ebx + 7]
shr edi, 3
cmp al, 8
cmovae edi, edx
lea eax, [edi + ebp]
add eax, 0xffffffff
mov dl, byte [ebp + edi - 1]
mov ebp, dword [esp + 0x30]
test byte [ebp + 0x7a], 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
mov edi, 0xff
jne 0x53fcd2
shr edi, cl
jmp 0x53fcd4
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
xor edi, edi
mov ebp, dword [esp + 0x30]
jmp 0x53fcd4
shl edi, cl
mov eax, dword [esp + 0xc]
lea esi, [eax + 1]
cmp byte [ebp + 0x148], 0
mov eax, dword [esp + 4]
je 0x53fd15
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 0x78]
test dl, 2
je 0x53fd15
cmp al, 5
ja 0x53fd15
mov ecx, dword [esp + 0x38]
cmp ecx, 1
je 0x53fd0c
test ecx, ecx
jne 0x53fd15
mov ebp, eax
and ebp, 1
jmp 0x53fd60
mov ebp, 1
test al, 1
jne 0x53fd60
mov edx, dword [esp]
mov eax, edx
shr eax, 3
mov ecx, dword [esp + 8]
imul ecx, eax
add ebx, 7
shr ebx, 3
cmp dl, 8
cmovae ebx, ecx
push ebx
push esi
push dword [esp + 0x3c]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x14]
test eax, eax
je 0x53fd58
mov edx, eax
movzx eax, byte [esp + 0x10]
movzx ecx, byte [edx]
xor eax, ecx
and eax, edi
xor eax, ecx
mov byte [edx], al
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret
lea ebx, [eax + 1]
shr ebx, 1
mov cl, 3
sub cl, bl
shl ebp, cl
and ebp, 7
mov ecx, dword [esp + 8]
cmp ecx, ebp
mov ebx, dword [esp]
jbe 0x53fd58
mov dword [esp + 0x18], esi
cmp bl, 7
ja 0x53fdd5
mov al, 8
movzx eax, al
div bl
xor ecx, ecx
cmp bl, 2
sete cl
mov esi, 2
sub esi, ecx
xor ecx, ecx
cmp bl, 1
cmovne ecx, esi
test edx, 0x10000
jne 0x53fe75
cmp dword [esp + 0x38], 0
mov ebp, dword [esp + 0x34]
je 0x540096
mov edx, dword [esp + 4]
add edx, edx
and edx, 0xfffffffc
lea ecx, [ecx + ecx*2]
lea ecx, [edx + ecx*4]
add ecx, 0x578ae4
jmp 0x5400be
test bl, 7
jne 0x5405e6
mov edx, ebx
shr edx, 3
mov edi, dword [esp + 8]
imul edi, edx
imul ebp, edx
sub edi, ebp
mov esi, edx
cmp dword [esp + 0x38], 0
je 0x53fe0a
mov ecx, 6
sub ecx, eax
shr ecx, 1
mov esi, edx
shl esi, cl
cmp esi, edi
cmova esi, edi
mov ecx, 7
sub ecx, eax
shr ecx, 1
shl edx, cl
mov eax, dword [esp + 0x34]
lea ecx, [eax + ebp]
mov eax, dword [esp + 0x18]
add eax, ebp
cmp esi, 1
je 0x53fee9
cmp esi, 3
je 0x53fe9e
cmp esi, 2
jne 0x53ff13
mov esi, dword [esp + 0xc]
movzx eax, byte [esi + ebp + 1]
mov ecx, dword [esp + 0x34]
mov byte [ecx + ebp], al
movzx eax, byte [esi + ebp + 2]
mov byte [ecx + ebp + 1], al
sub edi, edx
jbe 0x53fd58
add ebp, edx
cmp edi, 1
ja 0x53fe3d
mov eax, dword [esp + 0xc]
mov al, byte [eax + ebp + 1]
mov ecx, dword [esp + 0x34]
mov byte [ecx + ebp], al
jmp 0x53fd58
cmp dword [esp + 0x38], 0
mov ebp, dword [esp + 0x34]
je 0x5400ab
mov edx, dword [esp + 4]
add edx, edx
and edx, 0xfffffffc
lea ecx, [ecx + ecx*2]
lea ecx, [edx + ecx*4]
add ecx, 0x578ac0
jmp 0x5400be
mov esi, edx
mov dl, byte [eax]
mov byte [ecx], dl
mov dl, byte [eax + 1]
mov byte [ecx + 1], dl
mov al, byte [eax + 2]
mov byte [ecx + 2], al
cmp edi, esi
mov ecx, dword [esp + 0x34]
jbe 0x53fd58
add ebp, esi
mov edx, dword [esp + 0xc]
sub edi, esi
movzx eax, byte [edx + ebp + 1]
mov byte [ecx + ebp], al
movzx eax, byte [edx + ebp + 2]
mov byte [ecx + ebp + 1], al
movzx eax, byte [edx + ebp + 3]
mov byte [ecx + ebp + 2], al
add ebp, esi
cmp edi, esi
ja 0x53fec2
jmp 0x53fd58
mov al, byte [eax]
mov byte [ecx], al
cmp edi, edx
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x18]
jbe 0x53fd58
add ebp, edx
sub edi, edx
movzx eax, byte [esi + ebp]
mov byte [ecx + ebp], al
add ebp, edx
cmp edi, edx
ja 0x53feff
jmp 0x53fd58
mov dword [esp], edx
cmp esi, 0xf
ja 0x54003b
test cl, 1
jne 0x54003b
test al, 1
jne 0x54003b
mov edx, esi
and edx, 1
jne 0x54003b
mov edx, dword [esp]
and edx, 1
jne 0x54003b
mov dword [esp + 8], edi
test cl, 3
jne 0x54010f
mov edx, eax
and edx, 3
jne 0x54010f
mov edx, esi
and edx, 3
jne 0x54010f
mov edx, dword [esp]
and edx, 3
jne 0x54010f
mov edi, dword [esp]
mov edx, edi
sub edx, esi
shr edx, 2
mov dword [esp + 0x10], edx
mov edx, dword [esp + 8]
sub edx, edi
mov ebx, dword [esp]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0x10]
lea edx, [ecx + edi*4]
mov dword [esp + 0x14], edx
lea edx, [eax + edi*4]
mov dword [esp + 4], edx
xor ebp, ebp
nop word cs:[eax + eax]
nop
mov edx, dword [eax + ebp]
mov dword [ecx + ebp], edx
add ebp, 4
cmp esi, ebp
jne 0x53ffb0
mov edi, dword [esp + 8]
sub edi, ebx
jbe 0x53fd58
mov eax, dword [esp + 0x14]
lea ecx, [eax + ebp]
mov eax, dword [esp + 4]
add eax, ebp
mov edx, dword [esp + 0xc]
sub edx, ebx
mov dword [esp + 8], edi
cmp esi, edi
jbe 0x53ff8d
mov ebx, dword [esp + 8]
cmp ebx, 8
jb 0x54000e
mov edx, dword [esp + 4]
add edx, ebx
add edx, ebp
cmp edx, ecx
mov edi, dword [esp + 0x14]
jbe 0x540284
lea edx, [edi + ebx]
add edx, ebp
cmp edx, eax
jbe 0x540284
mov edi, ebx
lea ebp, [edi - 1]
mov ebx, edi
and edi, 7
je 0x5401c6
xor esi, esi
movzx edx, byte [eax + esi]
mov byte [ecx + esi], dl
add esi, 1
cmp edi, esi
jne 0x540020
add eax, esi
mov edi, ebx
sub edi, esi
add ecx, esi
jmp 0x5401c8
push esi
push eax
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
cmp edi, dword [esp]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
jbe 0x53fd58
mov eax, dword [esp]
add ebp, eax
neg eax
mov dword [esp + 0xc], eax
mov ebx, dword [esp]
lea eax, [ecx + ebp]
mov ecx, dword [esp + 0xc]
add ecx, edi
sub edi, ebx
cmp esi, ecx
cmova esi, ecx
lea ecx, [edx + ebp]
push esi
push eax
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
add esp, 0xc
add ebp, ebx
cmp edi, ebx
ja 0x540065
jmp 0x53fd58
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 4]
shl edx, 2
lea ecx, [edx + ecx*8]
add ecx, 0x578a78
jmp 0x5400be
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 4]
shl edx, 2
lea ecx, [edx + ecx*8]
add ecx, 0x578a30
mov esi, dword [esp + 8]
movzx eax, al
mov ecx, dword [ecx]
xor edx, edx
jmp 0x5400ea
mov ebx, dword [esp + 0x18]
movzx ebx, byte [ebx + edx]
mov byte [ebp + edx], bl
rol ecx, 0x18
add edx, 1
sub esi, eax
jbe 0x53fd3e
cmp cl, 0xff
je 0x5400d0
test cl, cl
je 0x5400dc
mov ebx, dword [esp + 0x34]
movzx ebp, byte [ebx + edx]
mov ebx, dword [esp + 0x18]
movzx ebx, byte [ebx + edx]
xor ebx, ebp
and ebx, ecx
xor ebx, ebp
mov ebp, dword [esp + 0x34]
jmp 0x5400d8
mov edi, dword [esp]
mov edx, edi
sub edx, esi
shr edx, 1
mov dword [esp + 0x10], edx
mov edx, dword [esp + 8]
sub edx, edi
mov ebx, dword [esp]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0x10]
lea edx, [ecx + edi*2]
mov dword [esp + 0x14], edx
lea edx, [eax + edi*2]
mov dword [esp + 4], edx
xor ebp, ebp
nop dword [eax]
movzx edx, word [eax + ebp]
mov word [ecx + ebp], dx
add ebp, 2
cmp esi, ebp
jne 0x540140
mov edi, dword [esp + 8]
sub edi, ebx
jbe 0x53fd58
mov eax, dword [esp + 0x14]
lea ecx, [eax + ebp]
mov eax, dword [esp + 4]
add eax, ebp
mov edx, dword [esp + 0xc]
sub edx, ebx
mov dword [esp + 8], edi
cmp esi, edi
jbe 0x540125
mov ebx, dword [esp + 8]
cmp ebx, 8
jb 0x5401a0
mov edx, dword [esp + 4]
add edx, ebx
add edx, ebp
cmp edx, ecx
mov edi, dword [esp + 0x14]
jbe 0x540406
lea edx, [edi + ebx]
add edx, ebp
cmp edx, eax
jbe 0x540406
mov edi, ebx
lea ebp, [edi - 1]
mov ebx, edi
and edi, 7
je 0x540225
xor esi, esi
movzx edx, byte [eax + esi]
mov byte [ecx + esi], dl
add esi, 1
cmp edi, esi
jne 0x5401ae
add eax, esi
mov edi, ebx
sub edi, esi
add ecx, esi
jmp 0x540227
mov edi, ebx
cmp ebp, 7
jb 0x53fd58
xor edx, edx
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
movzx ebx, byte [eax + edx + 1]
mov byte [ecx + edx + 1], bl
movzx ebx, byte [eax + edx + 2]
mov byte [ecx + edx + 2], bl
movzx ebx, byte [eax + edx + 3]
mov byte [ecx + edx + 3], bl
movzx ebx, byte [eax + edx + 4]
mov byte [ecx + edx + 4], bl
movzx ebx, byte [eax + edx + 5]
mov byte [ecx + edx + 5], bl
movzx ebx, byte [eax + edx + 6]
mov byte [ecx + edx + 6], bl
movzx ebx, byte [eax + edx + 7]
mov byte [ecx + edx + 7], bl
add edx, 8
cmp edi, edx
jne 0x5401d3
jmp 0x53fd58
mov edi, ebx
cmp ebp, 7
jb 0x53fd58
xor edx, edx
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
movzx ebx, byte [eax + edx + 1]
mov byte [ecx + edx + 1], bl
movzx ebx, byte [eax + edx + 2]
mov byte [ecx + edx + 2], bl
movzx ebx, byte [eax + edx + 3]
mov byte [ecx + edx + 3], bl
movzx ebx, byte [eax + edx + 4]
mov byte [ecx + edx + 4], bl
movzx ebx, byte [eax + edx + 5]
mov byte [ecx + edx + 5], bl
movzx ebx, byte [eax + edx + 6]
mov byte [ecx + edx + 6], bl
movzx ebx, byte [eax + edx + 7]
mov byte [ecx + edx + 7], bl
add edx, 8
cmp edi, edx
jne 0x540232
jmp 0x53fd58
xor esi, esi
mov dword [esp], 0
cmp ebx, 0x20
jb 0x540399
and ebx, 0xffffffe0
mov dword [esp], ebx
lea edx, [ebx - 0x20]
mov eax, edx
shr eax, 5
add eax, 1
mov dword [esp + 0x10], eax
xor eax, eax
cmp edx, 0x60
jb 0x540329
mov ebx, dword [esp + 0xc]
and ebx, 0xffffffe0
add ebx, 0xffffffe0
shr ebx, 5
add ebx, 1
and ebx, 0xfffffffc
xor eax, eax
mov ecx, dword [esp + 4]
lea edx, [ecx + eax]
movups xmm0, xmmword [ebp + edx]
movups xmm1, xmmword [ebp + edx + 0x10]
lea ecx, [edi + eax]
movups xmmword [ebp + ecx], xmm0
movups xmmword [ebp + ecx + 0x10], xmm1
movups xmm0, xmmword [ebp + edx + 0x20]
movups xmm1, xmmword [ebp + edx + 0x30]
movups xmmword [ebp + ecx + 0x20], xmm0
movups xmmword [ebp + ecx + 0x30], xmm1
movups xmm0, xmmword [ebp + edx + 0x40]
movups xmm1, xmmword [ebp + edx + 0x50]
movups xmmword [ebp + ecx + 0x40], xmm0
movups xmmword [ebp + ecx + 0x50], xmm1
movups xmm0, xmmword [ebp + edx + 0x60]
movups xmm1, xmmword [ebp + edx + 0x70]
movups xmmword [ebp + ecx + 0x60], xmm0
movups xmmword [ebp + ecx + 0x70], xmm1
sub eax, 0xffffff80
add ebx, 0xfffffffc
jne 0x5402c7
test byte [esp + 0x10], 3
je 0x54037f
mov ecx, dword [esp + 0xc]
and cl, 0x60
add cl, 0xe0
shr cl, 5
add cl, 1
movzx ecx, cl
and ecx, 3
shl ecx, 5
mov edx, dword [esp + 4]
lea edi, [eax + edx]
add edi, 0x10
mov edx, dword [esp + 0x14]
add eax, edx
add eax, 0x10
xor ebx, ebx
lea edx, [edi + ebx]
movups xmm0, xmmword [ebp + edx - 0x10]
movups xmm1, xmmword [ebp + edx]
lea edx, [eax + ebx]
movups xmmword [ebp + edx - 0x10], xmm0
movups xmmword [ebp + edx], xmm1
add ebx, 0x20
cmp ecx, ebx
jne 0x54035e
mov ebx, dword [esp + 8]
cmp ebx, dword [esp]
je 0x53fd58
test bl, 0x18
mov edi, dword [esp + 0x14]
je 0x540588
mov ecx, ebx
and ecx, 0xfffffff8
mov edx, dword [esp + 4]
lea eax, [edx + ecx]
add eax, ebp
mov dword [esp + 0x10], ecx
add ecx, edi
mov edi, dword [esp + 0xc]
and edi, 0xfffffff8
mov edx, dword [esp]
sub edi, edx
mov dword [esp + 0xc], edi
add dword [esp + 4], edx
mov edi, dword [esp + 0x14]
add edi, edx
mov edx, ebx
mov ebx, dword [esp + 4]
and edx, 7
mov dword [esp], edx
add ecx, ebp
lea edx, [ebx + esi]
movsd xmm0, qword [ebp + edx]
lea edx, [edi + esi]
movsd qword [ebp + edx], xmm0
add esi, 8
cmp dword [esp + 0xc], esi
jne 0x5403d5
mov edx, dword [esp + 0x10]
cmp dword [esp + 8], edx
mov edi, dword [esp]
je 0x53fd58
jmp 0x540010
xor esi, esi
mov dword [esp], 0
cmp ebx, 0x20
jb 0x54051b
and ebx, 0xffffffe0
mov dword [esp], ebx
lea edx, [ebx - 0x20]
mov eax, edx
shr eax, 5
add eax, 1
mov dword [esp + 0x10], eax
xor eax, eax
cmp edx, 0x60
jb 0x5404ab
mov ebx, dword [esp + 0xc]
and ebx, 0xffffffe0
add ebx, 0xffffffe0
shr ebx, 5
add ebx, 1
and ebx, 0xfffffffc
xor eax, eax
mov ecx, dword [esp + 4]
lea edx, [ecx + eax]
movups xmm0, xmmword [ebp + edx]
movups xmm1, xmmword [ebp + edx + 0x10]
lea ecx, [edi + eax]
movups xmmword [ebp + ecx], xmm0
movups xmmword [ebp + ecx + 0x10], xmm1
movups xmm0, xmmword [ebp + edx + 0x20]
movups xmm1, xmmword [ebp + edx + 0x30]
movups xmmword [ebp + ecx + 0x20], xmm0
movups xmmword [ebp + ecx + 0x30], xmm1
movups xmm0, xmmword [ebp + edx + 0x40]
movups xmm1, xmmword [ebp + edx + 0x50]
movups xmmword [ebp + ecx + 0x40], xmm0
movups xmmword [ebp + ecx + 0x50], xmm1
movups xmm0, xmmword [ebp + edx + 0x60]
movups xmm1, xmmword [ebp + edx + 0x70]
movups xmmword [ebp + ecx + 0x60], xmm0
movups xmmword [ebp + ecx + 0x70], xmm1
sub eax, 0xffffff80
add ebx, 0xfffffffc
jne 0x540449
test byte [esp + 0x10], 3
je 0x540501
mov ecx, dword [esp + 0xc]
and cl, 0x60
add cl, 0xe0
shr cl, 5
add cl, 1
movzx ecx, cl
and ecx, 3
shl ecx, 5
mov edx, dword [esp + 4]
lea edi, [eax + edx]
add edi, 0x10
mov edx, dword [esp + 0x14]
add eax, edx
add eax, 0x10
xor ebx, ebx
lea edx, [edi + ebx]
movups xmm0, xmmword [ebp + edx - 0x10]
movups xmm1, xmmword [ebp + edx]
lea edx, [eax + ebx]
movups xmmword [ebp + edx - 0x10], xmm0
movups xmmword [ebp + edx], xmm1
add ebx, 0x20
cmp ecx, ebx
jne 0x5404e0
mov ebx, dword [esp + 8]
cmp ebx, dword [esp]
je 0x53fd58
test bl, 0x18
mov edi, dword [esp + 0x14]
je 0x5405a5
mov ecx, ebx
and ecx, 0xfffffff8
mov edx, dword [esp + 4]
lea eax, [edx + ecx]
add eax, ebp
mov dword [esp + 0x10], ecx
add ecx, edi
mov edi, dword [esp + 0xc]
and edi, 0xfffffff8
mov edx, dword [esp]
sub edi, edx
mov dword [esp + 0xc], edi
add dword [esp + 4], edx
mov edi, dword [esp + 0x14]
add edi, edx
mov edx, ebx
mov ebx, dword [esp + 4]
and edx, 7
mov dword [esp], edx
add ecx, ebp
lea edx, [ebx + esi]
movsd xmm0, qword [ebp + edx]
lea edx, [edi + esi]
movsd qword [ebp + edx], xmm0
add esi, 8
cmp dword [esp + 0xc], esi
jne 0x540557
mov edx, dword [esp + 0x10]
cmp dword [esp + 8], edx
mov edi, dword [esp]
je 0x53fd58
jmp 0x5401a2
mov eax, ebx
and eax, 0xffffffe0
add edi, eax
add edi, ebp
and ebx, 0x1f
mov ecx, dword [esp + 4]
add ecx, eax
add ecx, ebp
mov eax, ecx
mov ecx, edi
jmp 0x54000e
mov eax, ebx
and eax, 0xffffffe0
add edi, eax
add edi, ebp
and ebx, 0x1f
mov ecx, dword [esp + 4]
add ecx, eax
add ecx, ebp
mov eax, ecx
mov ecx, edi
jmp 0x5401a0
push str.internal_row_logic_error
push edi
call fcn.00522ad0
push str.internal_row_width_error
push dword [esp + 0x34]
call fcn.00522ad0
push str.internal_row_size_calculation_error
push edi
call fcn.00522ad0
push str.invalid_user_transform_pixel_depth
push dword [esp + 0x34]
call fcn.00522ad0
nop word cs:[eax + eax]
nop