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

Disassembly:
sub esp, 0x90
push ebx
mov ebx, dword [esp + 0xa4]
cmp ebx, 0xa
jae 0x1053df60
mov eax, 0xffffffec
pop ebx
add esp, 0x90
ret
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
add eax, edx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xa0]
push ebp
push esi
push edi
movzx ebp, word [eax]
lea edi, [ecx + 4]
movzx esi, word [eax + 4]
mov dword [esp + 0x28], ebp
movzx ebp, word [eax + 2]
mov dword [esp + 0x20], ebp
mov ebp, ebx
movzx ebx, word [eax]
sub ebp, esi
sub ebp, dword [esp + 0x20]
add eax, 6
mov dword [esp + 0x1c], eax
sub ebp, ebx
add eax, ebx
mov dword [esp + 0x30], esi
mov dword [esp + 0x40], eax
sub ebp, 6
add eax, dword [esp + 0x20]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xa8]
add eax, 3
mov dword [esp + 0x14], edi
shr eax, 2
add edx, eax
mov dword [esp + 0x24], 1
mov dword [esp + 0x3c], edx
mov dword [esp + 0x2c], edx
lea ebx, [edx + eax]
add eax, ebx
mov dword [esp + 0x18], ebx
mov esi, eax
mov dword [esp + 0x94], eax
mov eax, dword [ecx]
shr eax, 0x10
mov dword [esp + 0x34], ebx
movzx ebx, al
mov dword [esp + 0x98], esi
mov dword [esp + 0x38], ebx
cmp ebp, dword [esp + 0xb0]
ja 0x1053e3d5
push dword [esp + 0x28]
lea eax, [esp + 0x84]
push dword [esp + 0x20]
push eax
call fcn.1053cfe0
add esp, 0xc
cmp eax, 0xffffff88
ja 0x1053ecf0
push dword [esp + 0x20]
lea eax, [esp + 0x48]
push dword [esp + 0x44]
push eax
call fcn.1053cfe0
add esp, 0xc
cmp eax, 0xffffff88
ja 0x1053ecf0
push dword [esp + 0x30]
lea eax, [esp + 0x70]
push dword [esp + 0x14]
push eax
call fcn.1053cfe0
add esp, 0xc
cmp eax, 0xffffff88
ja 0x1053ecf0
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x10]
push ebp
push eax
lea eax, [esp + 0x60]
push eax
call fcn.1053cfe0
add esp, 0xc
cmp eax, 0xffffff88
ja 0x1053ecf0
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x84]
add eax, 0xfffffffd
mov dword [esp + 0x1c], edx
cmp esi, eax
jae 0x1053e397
mov eax, dword [esp + 0x5c]
neg ebx
mov ebp, dword [esp + 0x70]
and ebx, 0x1f
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x28], eax
jmp 0x1053e0e8
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov ecx, edx
mov edx, dword [esp + 0x80]
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x10]
shr edx, cl
mov ecx, dword [esp + 0xa4]
movzx eax, byte [eax + edx*2]
movzx edi, byte [edi + edx*2 + 1]
mov byte [ecx], al
inc ecx
mov edx, dword [esp + 0x44]
mov dword [esp + 0xa4], ecx
mov ecx, ebx
and ecx, 0x1f
add edi, dword [esp + 0x1c]
shl edx, cl
mov ecx, dword [esp + 0x10]
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + edx*2 + 1]
add ebx, eax
movzx eax, byte [ecx + edx*2]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x6c]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x2c], ecx
mov ecx, ebp
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x10]
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + edx*2 + 1]
add ebp, eax
movzx eax, byte [ecx + edx*2]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x58]
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x28]
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x10]
shr edx, cl
mov ecx, dword [esp + 0x28]
movzx eax, byte [eax + edx*2 + 1]
add ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
mov ecx, edi
and ecx, 0x1f
movzx eax, byte [eax + edx*2]
mov edx, dword [esp + 0x14]
mov byte [esi], al
mov eax, dword [esp + 0x80]
shl eax, cl
mov ecx, dword [esp + 0x10]
shr eax, cl
movzx ecx, byte [edx + eax*2 + 1]
movzx eax, byte [edx + eax*2]
add ecx, edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0xa4]
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x44]
mov dword [esp + 0xa4], ecx
mov ecx, ebx
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x10]
shr eax, cl
movzx edi, byte [edx + eax*2 + 1]
add edi, ebx
mov dword [esp + 0x20], edi
movzx eax, byte [edx + eax*2]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x48], edi
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x2c], ecx
mov ecx, ebp
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x10]
shr eax, cl
mov ecx, dword [esp + 0x34]
movzx ebx, byte [edx + eax*2 + 1]
movzx eax, byte [edx + eax*2]
add ebx, ebp
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x58]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x40]
and ecx, 0x1f
mov dword [esp + 0x30], ebx
shl eax, cl
mov ecx, dword [esp + 0x10]
shr eax, cl
mov ecx, edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x70], ebx
movzx ebp, byte [ecx + eax*2 + 1]
movzx eax, byte [ecx + eax*2]
add ebp, dword [esp + 0x40]
mov ecx, dword [esp + 0x88]
mov byte [esi + 1], al
add esi, 2
mov dword [esp + 0x28], ebp
mov dword [esp + 0x5c], ebp
cmp ecx, dword [esp + 0x90]
jae 0x1053e28c
mov ecx, 3
jmp 0x1053e2b3
mov eax, edx
and edx, 7
shr eax, 3
sub ecx, eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x84], edx
mov eax, dword [ecx]
xor ecx, ecx
mov dword [esp + 0x80], eax
xor eax, eax
test ecx, ecx
mov ecx, dword [esp + 0x4c]
cmove eax, dword [esp + 0x24]
mov dword [esp + 0x40], eax
cmp ecx, dword [esp + 0x54]
jae 0x1053e2d1
mov ecx, 3
jmp 0x1053e2ef
mov eax, edi
and edi, 7
shr eax, 3
sub ecx, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], edi
mov eax, dword [ecx]
xor ecx, ecx
mov dword [esp + 0x44], eax
xor eax, eax
test ecx, ecx
mov ecx, dword [esp + 0x74]
sete al
and eax, dword [esp + 0x40]
mov dword [esp + 0x40], eax
cmp ecx, dword [esp + 0x7c]
jae 0x1053e30f
mov ecx, 3
jmp 0x1053e331
mov eax, ebx
and ebx, 7
shr eax, 3
sub ecx, eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x70], ebx
mov eax, dword [ecx]
xor ecx, ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x40]
xor ebx, ebx
test ecx, ecx
mov ecx, dword [esp + 0x60]
cmove ebx, eax
cmp ecx, dword [esp + 0x68]
jae 0x1053e349
mov ecx, 3
jmp 0x1053e367
mov eax, ebp
and ebp, 7
shr eax, 3
sub ecx, eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x60], ecx
mov dword [esp + 0x5c], ebp
mov eax, dword [ecx]
xor ecx, ecx
mov dword [esp + 0x58], eax
xor eax, eax
test ecx, ecx
sete al
and ebx, eax
mov eax, dword [esp + 0x9c]
add eax, 0xfffffffd
mov dword [esp + 0x24], ebx
cmp esi, eax
sbb eax, eax
test ebx, eax
mov ebx, dword [esp + 0x20]
jne 0x1053e0e0
mov dword [esp + 0x98], esi
jmp 0x1053e3af
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x28], ebp
mov ebx, dword [esp + 0xa4]
mov eax, dword [esp + 0x3c]
cmp ebx, eax
ja 0x1053e3d5
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x2c], ecx
ja 0x1053e3d5
mov ecx, dword [esp + 0x94]
cmp dword [esp + 0x34], ecx
jbe 0x1053e3e5
pop edi
pop esi
pop ebp
mov eax, 0xffffffec
pop ebx
add esp, 0x90
ret
mov ebp, dword [esp + 0x88]
lea ecx, [eax - 3]
mov dword [esp + 0x24], ecx
mov edi, dword [esp + 0x8c]
cmp edx, 0x20
jbe 0x1053e410
mov edi, dword [esp + 0x80]
mov dword [esp + 0x10], 3
jmp 0x1053e48e
cmp ebp, dword [esp + 0x90]
jb 0x1053e42d
mov eax, edx
mov dword [esp + 0x10], 0
shr eax, 3
sub ebp, eax
and edx, 7
jmp 0x1053e472
cmp ebp, edi
jne 0x1053e446
mov edi, dword [esp + 0x80]
cmp edx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x10], eax
jmp 0x1053e48e
mov ecx, edx
mov dword [esp + 0x10], 0
shr ecx, 3
mov eax, ebp
sub eax, ecx
cmp eax, edi
jae 0x1053e467
mov ecx, ebp
mov dword [esp + 0x10], 1
sub ecx, edi
imul eax, ecx, 0xfffffff8
sub ebp, ecx
mov ecx, dword [esp + 0x24]
add edx, eax
mov edi, dword [ebp]
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x88], ebp
cmp ebx, ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x10], eax
sete al
test eax, ecx
je 0x1053e51f
mov ebx, dword [esp + 0x38]
mov ecx, edx
mov eax, dword [esp + 0x14]
and ecx, 0x1f
neg ebx
mov edx, edi
shl edx, cl
and ebx, 0x1f
mov ecx, ebx
shr edx, cl
mov ecx, dword [esp + 0xa4]
movzx edi, byte [eax + edx*2 + 1]
movzx eax, byte [eax + edx*2]
add edi, dword [esp + 0x1c]
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x80]
mov dword [esp + 0xa4], ecx
mov ecx, edi
and ecx, 0x1f
shl eax, cl
mov ecx, ebx
mov ebx, dword [esp + 0xa4]
shr eax, cl
mov ecx, dword [esp + 0x14]
movzx edx, byte [ecx + eax*2 + 1]
movzx eax, byte [ecx + eax*2]
add edx, edi
mov ecx, dword [esp + 0x24]
mov byte [ebx], al
inc ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0xa4], ebx
jmp 0x1053e3f3
mov esi, dword [esp + 0x88]
cmp edx, 0x20
jbe 0x1053e538
mov dword [esp + 0x10], 3
jmp 0x1053e5c0
cmp esi, dword [esp + 0x90]
jb 0x1053e555
mov eax, edx
mov dword [esp + 0x10], 0
shr eax, 3
sub esi, eax
and edx, 7
jmp 0x1053e5a5
mov edi, dword [esp + 0x8c]
cmp esi, edi
jne 0x1053e57d
mov edi, dword [esp + 0x38]
cmp edx, 0x20
jae 0x1053e573
mov dword [esp + 0x10], 1
jmp 0x1053e5c4
mov dword [esp + 0x10], 2
jmp 0x1053e5c4
mov ecx, edx
mov dword [esp + 0x10], 0
shr ecx, 3
mov eax, esi
sub eax, ecx
cmp eax, edi
jae 0x1053e59e
mov ecx, esi
mov dword [esp + 0x10], 1
sub ecx, edi
imul eax, ecx, 0xfffffff8
sub esi, ecx
add edx, eax
mov eax, dword [esi]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x88], esi
mov edi, dword [esp + 0x38]
neg edi
cmp ebx, dword [esp + 0x3c]
mov dword [esp + 0x40], edi
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x10], eax
sete al
test eax, ecx
je 0x1053e61f
mov edi, dword [esp + 0x14]
mov ecx, edx
mov edx, dword [esp + 0x80]
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x38]
neg ecx
and ecx, 0x1f
shr edx, cl
mov ecx, dword [esp + 0x1c]
movzx eax, byte [edi + edx*2 + 1]
add ecx, eax
mov al, byte [edi + edx*2]
mov byte [ebx], al
mov edx, ecx
mov dword [esp + 0x1c], ecx
inc ebx
mov dword [esp + 0x84], ecx
jmp 0x1053e526
cmp ebx, dword [esp + 0x3c]
jae 0x1053e664
mov ebp, dword [esp + 0x80]
and edi, 0x1f
mov esi, dword [esp + 0x14]
mov ecx, edx
mov edx, ebp
and ecx, 0x1f
shl edx, cl
mov ecx, edi
shr edx, cl
mov ecx, dword [esp + 0x1c]
movzx eax, byte [esi + edx*2 + 1]
add ecx, eax
mov al, byte [esi + edx*2]
mov byte [ebx], al
mov edx, ecx
inc ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x84], ecx
cmp ebx, dword [esp + 0x3c]
jb 0x1053e633
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
add ecx, 0xfffffffd
mov esi, dword [esp + 0x4c]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x24], ecx
nop dword [eax + eax]
cmp edi, 0x20
jbe 0x1053e68c
mov ebx, 3
jmp 0x1053e6eb
cmp esi, dword [esp + 0x54]
jb 0x1053e6a6
mov eax, edi
and edi, 7
shr eax, 3
sub esi, eax
mov ebx, dword [esi]
mov dword [esp + 0x44], ebx
xor ebx, ebx
jmp 0x1053e6e3
cmp esi, dword [esp + 0x50]
jne 0x1053e6b6
cmp edi, 0x20
sbb ebx, ebx
add ebx, 2
jmp 0x1053e6eb
mov ecx, edi
mov eax, esi
shr ecx, 3
xor ebx, ebx
sub eax, ecx
cmp eax, dword [esp + 0x50]
jae 0x1053e6d2
mov ecx, esi
mov ebx, 1
sub ecx, dword [esp + 0x50]
imul eax, ecx, 0xfffffff8
sub esi, ecx
mov ecx, dword [esp + 0x24]
add edi, eax
mov eax, dword [esi]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], esi
cmp edx, ecx
sbb ecx, ecx
xor eax, eax
neg ecx
test ebx, ebx
sete al
test eax, ecx
je 0x1053e764
mov ebx, dword [esp + 0x38]
mov ecx, edi
mov edx, dword [esp + 0x44]
and ecx, 0x1f
shl edx, cl
neg ebx
and ebx, 0x1f
mov ecx, ebx
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + edx*2 + 1]
add edi, eax
movzx eax, byte [ecx + edx*2]
mov edx, dword [esp + 0x2c]
mov ecx, edi
and ecx, 0x1f
mov byte [edx], al
mov eax, dword [esp + 0x44]
shl eax, cl
mov ecx, ebx
shr eax, cl
mov ecx, dword [esp + 0x14]
movzx ebx, byte [ecx + eax*2 + 1]
movzx eax, byte [ecx + eax*2]
add ebx, edi
mov ecx, dword [esp + 0x24]
mov edi, ebx
mov byte [edx + 1], al
add edx, 2
mov dword [esp + 0x20], ebx
mov dword [esp + 0x48], edi
mov dword [esp + 0x2c], edx
jmp 0x1053e680
mov ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0x40]
nop dword [eax]
cmp edi, 0x20
jbe 0x1053e77f
mov dword [esp + 0x20], 3
jmp 0x1053e7fa
cmp ebp, dword [esp + 0x54]
jb 0x1053e799
mov eax, edi
mov dword [esp + 0x20], 0
shr eax, 3
sub ebp, eax
and edi, 7
jmp 0x1053e7eb
cmp ebp, dword [esp + 0x50]
jne 0x1053e7bf
mov ecx, ebx
mov eax, 0x1f
cmp edi, 0x20
jae 0x1053e7b5
mov dword [esp + 0x20], 1
jmp 0x1053e801
mov dword [esp + 0x20], 2
jmp 0x1053e801
mov ecx, edi
mov dword [esp + 0x20], 0
shr ecx, 3
mov eax, ebp
sub eax, ecx
cmp eax, dword [esp + 0x50]
jae 0x1053e7e4
mov ecx, ebp
mov dword [esp + 0x20], 1
sub ecx, dword [esp + 0x50]
imul eax, ecx, 0xfffffff8
sub ebp, ecx
add edi, eax
mov eax, dword [ebp]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], ebp
mov ecx, ebx
mov eax, 0x1f
and eax, ecx
cmp edx, dword [esp + 0x18]
mov dword [esp + 0x10], eax
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x20], eax
sete al
test eax, ecx
je 0x1053e850
mov edx, dword [esp + 0x44]
mov ecx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, ebx
and ecx, 0x1f
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + edx*2 + 1]
add edi, eax
mov al, byte [ecx + edx*2]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x48], edi
mov byte [edx], al
inc edx
mov dword [esp + 0x2c], edx
jmp 0x1053e770
cmp edx, dword [esp + 0x18]
jae 0x1053e889
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x44]
mov ecx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, ebx
shr edx, cl
movzx eax, byte [ebp + edx*2 + 1]
add edi, eax
mov al, byte [ebp + edx*2]
mov byte [esi], al
inc esi
cmp esi, dword [esp + 0x18]
jb 0x1053e862
mov dword [esp + 0x48], edi
mov ecx, dword [esp + 0x94]
mov ebx, dword [esp + 0x30]
add ecx, 0xfffffffd
mov ebp, dword [esp + 0x74]
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x24], ecx
cmp ebx, 0x20
jbe 0x1053e8b6
mov dword [esp + 0x18], 3
jmp 0x1053e927
cmp ebp, dword [esp + 0x7c]
jb 0x1053e8d0
mov eax, ebx
mov dword [esp + 0x18], 0
shr eax, 3
sub ebp, eax
and ebx, 7
jmp 0x1053e914
cmp ebp, dword [esp + 0x78]
jne 0x1053e8e4
cmp ebx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x18], eax
jmp 0x1053e927
mov edx, dword [esp + 0x78]
mov ecx, ebx
shr ecx, 3
mov eax, ebp
sub eax, ecx
mov dword [esp + 0x18], 0
cmp eax, edx
jae 0x1053e909
mov ecx, ebp
mov dword [esp + 0x18], 1
sub ecx, edx
imul eax, ecx, 0xfffffff8
sub ebp, ecx
mov ecx, dword [esp + 0x24]
add ebx, eax
mov edx, dword [ebp]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x74], ebp
cmp edi, ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x18], eax
sete al
test eax, ecx
je 0x1053e9a8
mov edi, dword [esp + 0x30]
mov ecx, edi
mov ebx, dword [esp + 0x38]
and ecx, 0x1f
shl edx, cl
neg ebx
and ebx, 0x1f
mov ecx, ebx
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + edx*2 + 1]
add edi, eax
movzx eax, byte [ecx + edx*2]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x6c]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x34], ecx
mov eax, edx
mov ecx, edi
and ecx, 0x1f
shl eax, cl
mov ecx, ebx
shr eax, cl
mov ecx, dword [esp + 0x14]
movzx ebx, byte [ecx + eax*2 + 1]
movzx eax, byte [ecx + eax*2]
add ebx, edi
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x70], ebx
mov byte [edi], al
inc edi
mov dword [esp + 0x34], edi
jmp 0x1053e8a7
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x74]
cmp ebx, 0x20
jbe 0x1053e9c3
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x18], 3
jmp 0x1053ea2d
cmp esi, dword [esp + 0x7c]
jb 0x1053e9dd
mov eax, ebx
mov dword [esp + 0x18], 0
shr eax, 3
sub esi, eax
and ebx, 7
jmp 0x1053ea1f
mov edx, dword [esp + 0x78]
cmp esi, edx
jne 0x1053e9f7
mov edx, dword [esp + 0x6c]
cmp ebx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x18], eax
jmp 0x1053ea2d
mov ecx, ebx
mov dword [esp + 0x18], 0
shr ecx, 3
mov eax, esi
sub eax, ecx
cmp eax, edx
jae 0x1053ea18
mov ecx, esi
mov dword [esp + 0x18], 1
sub ecx, edx
imul eax, ecx, 0xfffffff8
sub esi, ecx
add ebx, eax
mov edx, dword [esi]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], esi
cmp edi, dword [esp + 0x94]
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x18], eax
sete al
test eax, ecx
je 0x1053ea6c
mov ecx, ebx
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x10]
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + edx*2 + 1]
add ebx, eax
mov al, byte [ecx + edx*2]
mov byte [edi], al
inc edi
mov dword [esp + 0x70], ebx
jmp 0x1053e9b0
mov esi, dword [esp + 0x98]
cmp edi, dword [esp + 0x94]
jae 0x1053eab9
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov ecx, ebx
and ecx, 0x1f
shl edx, cl
mov ecx, esi
shr edx, cl
movzx eax, byte [ebp + edx*2 + 1]
add ebx, eax
mov al, byte [ebp + edx*2]
mov edx, dword [esp + 0x6c]
mov byte [edi], al
inc edi
cmp edi, dword [esp + 0x94]
jb 0x1053ea84
mov esi, dword [esp + 0x98]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x70], ebx
mov ecx, dword [esp + 0x9c]
mov ebx, dword [esp + 0x14]
add ecx, 0xfffffffd
mov dword [esp + 0x24], ecx
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
cmp ebp, 0x20
jbe 0x1053eae6
mov edi, dword [esp + 0x58]
mov dword [esp + 0x18], 3
jmp 0x1053eb50
cmp edx, dword [esp + 0x68]
jb 0x1053eb00
mov eax, ebp
mov dword [esp + 0x18], 0
shr eax, 3
sub edx, eax
and ebp, 7
jmp 0x1053eb42
cmp edx, edi
jne 0x1053eb16
mov edi, dword [esp + 0x58]
cmp ebp, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x18], eax
jmp 0x1053eb50
mov ecx, ebp
mov dword [esp + 0x18], 0
shr ecx, 3
mov eax, edx
sub eax, ecx
cmp eax, edi
jae 0x1053eb37
mov ecx, edx
mov dword [esp + 0x18], 1
sub ecx, edi
imul eax, ecx, 0xfffffff8
sub edx, ecx
mov ecx, dword [esp + 0x24]
add ebp, eax
mov edi, dword [edx]
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], edx
cmp esi, ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x18], eax
sete al
test eax, ecx
je 0x1053ebc0
mov ebx, dword [esp + 0x38]
mov ecx, ebp
and ecx, 0x1f
neg ebx
and ebx, 0x1f
mov edx, edi
shl edx, cl
mov ecx, ebx
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx edi, byte [ecx + edx*2 + 1]
movzx eax, byte [ecx + edx*2]
add edi, ebp
mov byte [esi], al
mov ecx, edi
mov eax, dword [esp + 0x58]
and ecx, 0x1f
shl eax, cl
mov ecx, ebx
mov ebx, dword [esp + 0x14]
shr eax, cl
mov ecx, dword [esp + 0x24]
movzx ebp, byte [ebx + eax*2 + 1]
movzx eax, byte [ebx + eax*2]
add ebp, edi
mov byte [esi + 1], al
add esi, 2
mov dword [esp + 0x5c], ebp
jmp 0x1053eacb
cmp ebp, 0x20
jbe 0x1053ebcc
mov edx, 3
jmp 0x1053ec3a
cmp edx, dword [esp + 0x68]
jb 0x1053ebe6
mov eax, ebp
and ebp, 7
shr eax, 3
sub edx, eax
mov dword [esp + 0x60], edx
mov edi, dword [edx]
xor edx, edx
jmp 0x1053ec32
cmp edx, dword [esp + 0x64]
jne 0x1053ebfc
cmp ebp, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x3c], eax
mov edx, eax
jmp 0x1053ec3a
mov edi, dword [esp + 0x64]
mov ecx, ebp
shr ecx, 3
mov eax, edx
sub eax, ecx
mov dword [esp + 0x3c], 0
cmp eax, edi
jae 0x1053ec21
mov ecx, edx
mov dword [esp + 0x3c], 1
sub ecx, edi
sub edx, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0x60], edx
mov edi, dword [edx]
mov edx, dword [esp + 0x3c]
add ebp, eax
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], ebp
cmp esi, dword [esp + 0x9c]
sbb ecx, ecx
xor eax, eax
neg ecx
test edx, edx
sete al
test eax, ecx
je 0x1053ec79
mov ecx, ebp
mov edx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x10]
shr edx, cl
movzx eax, byte [ebx + edx*2 + 1]
add ebp, eax
mov al, byte [ebx + edx*2]
mov edx, dword [esp + 0x60]
mov byte [esi], al
inc esi
mov dword [esp + 0x5c], ebp
jmp 0x1053ebc0
cmp esi, dword [esp + 0x9c]
jae 0x1053ecab
mov ecx, ebp
mov edx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x10]
shr edx, cl
movzx eax, byte [ebx + edx*2 + 1]
add ebp, eax
mov al, byte [ebx + edx*2]
mov byte [esi], al
inc esi
cmp esi, dword [esp + 0x9c]
jb 0x1053ec82
mov dword [esp + 0x5c], ebp
lea eax, [esp + 0x58]
push eax
call fcn.1053cfc0
mov edx, eax
lea eax, [esp + 0x70]
push eax
call fcn.1053cfc0
and edx, eax
lea eax, [esp + 0x4c]
push eax
call fcn.1053cfc0
and edx, eax
lea eax, [esp + 0x8c]
push eax
call fcn.1053cfc0
add esp, 0x10
mov ecx, 0xffffffec
test eax, edx
mov eax, dword [esp + 0xa8]
cmove eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret