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

Disassembly:
sub esp, 0x90
push ebp
mov ebp, dword [esp + 0xa4]
cmp ebp, 0xa
jae 0x42db72
mov eax, 0xffffffec
pop ebp
add esp, 0x90
ret 0x18
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa8]
add eax, edx
mov dword [esp + 0x90], eax
add eax, 0xfffffffd
mov dword [esp + 0x8c], eax
push ebx
lea eax, [ecx + 4]
mov dword [esp + 0x1c], 1
mov dword [esp + 8], eax
mov eax, dword [esp + 0xa4]
push esi
push edi
movzx edi, word [eax]
movzx esi, word [eax + 4]
movzx ebx, word [eax + 2]
add eax, 6
mov dword [esp + 0x28], eax
add eax, edi
mov dword [esp + 0x14], ebx
mov ebx, ebp
mov dword [esp + 0x20], eax
sub ebx, esi
add eax, dword [esp + 0x14]
sub ebx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
sub ebx, edi
mov eax, dword [esp + 0xa8]
sub ebx, 6
add eax, 3
mov dword [esp + 0x1c], esi
shr eax, 2
add edx, eax
mov dword [esp + 0x34], edi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x2c], edx
lea esi, [edx + eax]
add eax, esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x90], eax
mov dword [esp + 0x30], esi
mov esi, eax
mov dword [esp + 0x94], eax
mov eax, dword [ecx]
shr eax, 0x10
movzx edi, al
cmp ebx, ebp
ja 0x42dfc7
push dword [esp + 0x34]
lea eax, [esp + 0x6c]
push dword [esp + 0x2c]
push eax
call fcn.00433300
cmp eax, 0xffffff88
ja 0x42e8a2
push dword [esp + 0x14]
lea eax, [esp + 0x58]
push dword [esp + 0x24]
push eax
call fcn.00433300
cmp eax, 0xffffff88
ja 0x42e8a2
mov ebp, dword [esp + 0x1c]
lea eax, [esp + 0x40]
push ebp
push dword [esp + 0x3c]
push eax
call fcn.00433300
cmp eax, 0xffffff88
ja 0x42e8a2
mov eax, dword [esp + 0x38]
push ebx
add eax, ebp
push eax
lea eax, [esp + 0x84]
push eax
call fcn.00433300
cmp eax, 0xffffff88
ja 0x42e8a2
mov eax, dword [esp + 0x98]
neg edi
mov edx, dword [esp + 0x6c]
and edi, 0x1f
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edx
cmp esi, eax
jae 0x42df88
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x28], eax
jmp 0x42dcd9
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
mov ecx, edx
and ecx, 0x1f
mov edx, dword [esp + 0x68]
shl edx, cl
mov ecx, edi
shr edx, cl
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0xa4]
movzx eax, byte [eax + edx*2 + 1]
add edi, eax
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + edx*2]
mov byte [ecx], al
inc ecx
mov edx, dword [esp + 0x54]
mov dword [esp + 0xa4], ecx
mov ecx, ebx
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x1c]
shr edx, cl
mov ecx, dword [esp + 0x10]
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 + 0x40]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x2c], ecx
mov ecx, ebp
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x1c]
shr edx, cl
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx + edx*2 + 1]
add ebp, eax
movzx eax, byte [ecx + edx*2]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x7c]
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x28]
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x1c]
shr edx, cl
mov ecx, dword [esp + 0x28]
movzx eax, byte [eax + edx*2 + 1]
add ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
mov ecx, edi
and ecx, 0x1f
movzx eax, byte [eax + edx*2]
mov edx, dword [esp + 0x1c]
mov byte [esi], al
mov eax, dword [esp + 0x68]
shl eax, cl
mov ecx, edx
shr eax, cl
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + eax*2 + 1]
add ecx, edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0xa4]
movzx eax, byte [edi + eax*2]
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x54]
mov dword [esp + 0xa4], ecx
mov ecx, ebx
and ecx, 0x1f
shl eax, cl
mov ecx, edx
shr eax, cl
mov ecx, dword [esp + 0x2c]
movzx edi, byte [edi + eax*2 + 1]
add edi, ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x38], edi
mov dword [esp + 0x58], edi
movzx eax, byte [ebx + eax*2]
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x2c], ecx
mov ecx, ebp
and ecx, 0x1f
shl eax, cl
mov ecx, edx
shr eax, cl
movzx ecx, byte [ebx + eax*2 + 1]
movzx eax, byte [ebx + eax*2]
add ecx, ebp
mov ebp, ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x44], ebp
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x14]
and ecx, 0x1f
shl eax, cl
mov ecx, edx
mov edx, dword [esp + 0x20]
shr eax, cl
mov ecx, dword [esp + 0x10]
movzx ebx, byte [ebx + eax*2 + 1]
movzx eax, byte [ecx + eax*2]
add ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x70]
mov byte [esi + 1], al
add esi, 2
mov dword [esp + 0x28], ebx
mov dword [esp + 0x80], ebx
cmp ecx, dword [esp + 0x78]
jae 0x42de7d
mov eax, 3
jmp 0x42de9b
mov eax, edx
and edx, 7
shr eax, 3
sub ecx, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], edx
mov eax, dword [ecx]
mov dword [esp + 0x68], eax
xor eax, eax
mov ecx, dword [esp + 0x5c]
neg eax
sbb eax, eax
not eax
and eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
cmp ecx, dword [esp + 0x64]
jae 0x42deba
mov edi, 3
jmp 0x42dedc
mov eax, edi
and edi, 7
shr eax, 3
sub ecx, eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x58], edi
xor edi, edi
mov dword [esp + 0x5c], ecx
mov eax, dword [ecx]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x24]
xor ecx, ecx
test edi, edi
sete cl
and ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x48]
cmp ecx, dword [esp + 0x50]
jae 0x42defa
mov edi, 3
jmp 0x42df18
mov eax, ebp
and ebp, 7
shr eax, 3
sub ecx, eax
mov dword [esp + 0x34], ebp
mov dword [esp + 0x48], ecx
xor edi, edi
mov dword [esp + 0x44], ebp
mov eax, dword [ecx]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x84]
neg edi
sbb edi, edi
not edi
and edi, dword [esp + 0x24]
cmp ecx, dword [esp + 0x8c]
jae 0x42df39
mov ecx, 3
jmp 0x42df5d
mov eax, ebx
and ebx, 7
shr eax, 3
sub ecx, eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x80], ebx
mov eax, dword [ecx]
xor ecx, ecx
mov dword [esp + 0x7c], eax
xor eax, eax
test ecx, ecx
sete al
and edi, eax
cmp esi, dword [esp + 0x98]
mov dword [esp + 0x24], edi
sbb eax, eax
test edi, eax
mov edi, dword [esp + 0x1c]
jne 0x42dcd5
mov dword [esp + 0x94], esi
jmp 0x42dfa3
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x80]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0xa4], eax
ja 0x42dfc7
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x2c], ecx
ja 0x42dfc7
mov ecx, dword [esp + 0x90]
cmp dword [esp + 0x30], ecx
jbe 0x42dfd9
pop edi
pop esi
pop ebx
mov eax, 0xffffffec
pop ebp
add esp, 0x90
ret 0x18
mov ebx, dword [esp + 0x70]
lea ecx, [eax - 3]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x24], ecx
jmp 0x42dff0
cmp edx, 0x20
jbe 0x42dfff
mov dword [esp + 0x14], 3
jmp 0x42e06f
cmp ebx, dword [esp + 0x78]
jb 0x42e019
mov eax, edx
mov dword [esp + 0x14], 0
shr eax, 3
sub ebx, eax
and edx, 7
jmp 0x42e05d
cmp ebx, dword [esp + 0x74]
jne 0x42e02d
cmp edx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x14], eax
jmp 0x42e06f
mov ecx, edx
mov dword [esp + 0x14], 0
shr ecx, 3
mov eax, ebx
sub eax, ecx
cmp eax, dword [esp + 0x74]
jae 0x42e052
mov ecx, ebx
mov dword [esp + 0x14], 1
sub ecx, dword [esp + 0x74]
imul eax, ecx, 0xfffffff8
sub ebx, ecx
mov ecx, dword [esp + 0x24]
add edx, eax
mov eax, dword [ebx]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x70], ebx
cmp ebp, ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x14], eax
sete al
test eax, ecx
je 0x42e0e0
mov eax, dword [esp + 0x10]
mov ecx, edx
mov edx, dword [esp + 0x68]
and ecx, 0x1f
shl edx, cl
mov ecx, edi
shr edx, cl
movzx edi, byte [eax + edx*2 + 1]
movzx eax, byte [eax + edx*2]
add edi, dword [esp + 0x20]
mov byte [ebp], al
mov ecx, edi
mov eax, dword [esp + 0x68]
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x1c]
shr eax, cl
mov ecx, dword [esp + 0x10]
movzx edx, byte [ecx + eax*2 + 1]
movzx eax, byte [ecx + eax*2]
add edx, edi
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov byte [ebp + 1], al
add ebp, 2
mov dword [esp + 0x20], edx
mov dword [esp + 0x6c], edx
jmp 0x42dff0
mov esi, dword [esp + 0x70]
mov ecx, ebp
mov dword [esp + 0xa4], ebp
lea ecx, [ecx]
cmp edx, 0x20
jbe 0x42e0ff
mov dword [esp + 0x14], 3
jmp 0x42e177
cmp esi, dword [esp + 0x78]
jb 0x42e119
mov eax, edx
mov dword [esp + 0x14], 0
shr eax, 3
sub esi, eax
and edx, 7
jmp 0x42e165
cmp esi, dword [esp + 0x74]
jne 0x42e12d
cmp edx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x14], eax
jmp 0x42e177
mov eax, edx
mov dword [esp + 0x14], 0
shr eax, 3
mov dword [esp + 0x24], eax
mov eax, esi
sub eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x74]
jae 0x42e15a
mov eax, esi
mov dword [esp + 0x14], 1
sub eax, dword [esp + 0x74]
jmp 0x42e15e
mov eax, dword [esp + 0x24]
sub esi, eax
imul eax, eax, 0xfffffff8
add edx, eax
mov eax, dword [esi]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x70], esi
cmp ecx, dword [esp + 0x3c]
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x14], eax
sete al
test eax, ecx
je 0x42e1d3
mov eax, dword [esp + 0x10]
mov ecx, edx
mov edx, dword [esp + 0x68]
and ecx, 0x1f
shl edx, cl
mov ecx, edi
shr edx, cl
mov ecx, dword [esp + 0x20]
movzx eax, byte [eax + edx*2 + 1]
add ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0xa4]
mov al, byte [eax + edx*2]
mov edx, dword [esp + 0x20]
mov byte [ecx], al
inc ecx
mov dword [esp + 0xa4], ecx
jmp 0x42e0f0
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0xa4], eax
jae 0x42e21f
mov ebp, dword [esp + 0xa4]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x68]
nop
mov ecx, edx
mov edx, esi
and ecx, 0x1f
shl edx, cl
mov ecx, edi
shr edx, cl
mov ecx, dword [esp + 0x20]
movzx eax, byte [ebx + edx*2 + 1]
add ecx, eax
mov al, byte [ebx + edx*2]
mov byte [ebp], al
mov edx, ecx
inc ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x6c], ecx
cmp ebp, dword [esp + 0x3c]
jb 0x42e1f0
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x38]
add ecx, 0xfffffffd
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x24], ecx
cmp edi, 0x20
jbe 0x42e245
mov dword [esp + 0x14], 3
jmp 0x42e2b1
cmp esi, dword [esp + 0x64]
jb 0x42e25f
mov eax, edi
mov dword [esp + 0x14], 0
shr eax, 3
sub esi, eax
and edi, 7
jmp 0x42e2a3
cmp esi, dword [esp + 0x60]
jne 0x42e273
cmp edi, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x14], eax
jmp 0x42e2b1
mov ecx, edi
mov dword [esp + 0x14], 0
shr ecx, 3
mov eax, esi
sub eax, ecx
cmp eax, dword [esp + 0x60]
jae 0x42e298
mov ecx, esi
mov dword [esp + 0x14], 1
sub ecx, dword [esp + 0x60]
imul eax, ecx, 0xfffffff8
sub esi, ecx
mov ecx, dword [esp + 0x24]
add edi, eax
mov eax, dword [esi]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], esi
cmp edx, ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x14], eax
sete al
test eax, ecx
je 0x42e32b
mov edx, dword [esp + 0x54]
mov ecx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x1c]
shr edx, cl
mov ecx, dword [esp + 0x10]
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 + 0x54]
shl eax, cl
mov ecx, dword [esp + 0x1c]
shr eax, cl
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + eax*2 + 1]
add ecx, edi
mov edi, ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x58], edi
movzx eax, byte [ecx + eax*2]
mov ecx, dword [esp + 0x24]
mov byte [edx + 1], al
add edx, 2
mov dword [esp + 0x2c], edx
jmp 0x42e236
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x1c]
cmp edi, 0x20
jbe 0x42e342
mov dword [esp + 0x14], 3
jmp 0x42e3aa
cmp ebx, dword [esp + 0x64]
jb 0x42e35c
mov eax, edi
mov dword [esp + 0x14], 0
shr eax, 3
sub ebx, eax
and edi, 7
jmp 0x42e39c
cmp ebx, dword [esp + 0x60]
jne 0x42e370
cmp edi, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x14], eax
jmp 0x42e3aa
mov ecx, edi
mov dword [esp + 0x14], 0
shr ecx, 3
mov eax, ebx
sub eax, ecx
cmp eax, dword [esp + 0x60]
jae 0x42e395
mov ecx, ebx
mov dword [esp + 0x14], 1
sub ecx, dword [esp + 0x60]
imul eax, ecx, 0xfffffff8
sub ebx, ecx
add edi, eax
mov eax, dword [ebx]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], ebx
cmp edx, dword [esp + 0x18]
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x14], eax
sete al
test eax, ecx
je 0x42e3f0
mov edx, dword [esp + 0x54]
mov ecx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, ebp
shr edx, cl
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx + edx*2 + 1]
add edi, eax
mov al, byte [ecx + edx*2]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x58], edi
mov byte [edx], al
inc edx
mov dword [esp + 0x2c], edx
jmp 0x42e333
mov ebp, dword [esp + 0x34]
cmp edx, dword [esp + 0x18]
jae 0x42e431
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x54]
mov ecx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, esi
shr edx, cl
movzx eax, byte [ebx + edx*2 + 1]
add edi, eax
mov al, byte [ebx + edx*2]
mov byte [ebp], al
inc ebp
cmp ebp, dword [esp + 0x18]
jb 0x42e406
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x58], edi
mov ecx, dword [esp + 0x90]
mov ebx, dword [esp + 0x48]
add ecx, 0xfffffffd
mov edx, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov edi, dword [esp + 0x4c]
cmp ebp, 0x20
jbe 0x42e45e
mov edi, dword [esp + 0x40]
mov dword [esp + 0x18], 3
jmp 0x42e4c8
cmp ebx, dword [esp + 0x50]
jb 0x42e478
mov eax, ebp
mov dword [esp + 0x18], 0
shr eax, 3
sub ebx, eax
and ebp, 7
jmp 0x42e4ba
cmp ebx, edi
jne 0x42e48e
mov edi, dword [esp + 0x40]
cmp ebp, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x18], eax
jmp 0x42e4c8
mov ecx, ebp
mov dword [esp + 0x18], 0
shr ecx, 3
mov eax, ebx
sub eax, ecx
cmp eax, edi
jae 0x42e4af
mov ecx, ebx
mov dword [esp + 0x18], 1
sub ecx, edi
imul eax, ecx, 0xfffffff8
sub ebx, ecx
mov ecx, dword [esp + 0x24]
add ebp, eax
mov edi, dword [ebx]
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebx
cmp edx, ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x18], eax
sete al
test eax, ecx
je 0x42e536
mov ecx, ebp
mov edx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x1c]
shr edx, cl
mov ecx, dword [esp + 0x10]
movzx edi, byte [ecx + edx*2 + 1]
movzx eax, byte [ecx + edx*2]
add edi, ebp
mov edx, dword [esp + 0x30]
mov ecx, edi
and ecx, 0x1f
mov byte [edx], al
mov eax, dword [esp + 0x40]
shl eax, cl
mov ecx, dword [esp + 0x1c]
shr eax, cl
mov ecx, dword [esp + 0x10]
movzx ebp, byte [ecx + eax*2 + 1]
movzx eax, byte [ecx + eax*2]
add ebp, edi
mov ecx, dword [esp + 0x24]
mov byte [edx + 1], al
add edx, 2
mov dword [esp + 0x44], ebp
mov dword [esp + 0x30], edx
jmp 0x42e447
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x1c]
cmp ebp, 0x20
jbe 0x42e551
mov dword [esp + 0x18], 3
jmp 0x42e5b9
cmp esi, dword [esp + 0x50]
jb 0x42e56b
mov eax, ebp
mov dword [esp + 0x18], 0
shr eax, 3
sub esi, eax
and ebp, 7
jmp 0x42e5ab
cmp esi, dword [esp + 0x4c]
jne 0x42e57f
cmp ebp, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x18], eax
jmp 0x42e5b9
mov ecx, ebp
mov dword [esp + 0x18], 0
shr ecx, 3
mov eax, esi
sub eax, ecx
cmp eax, dword [esp + 0x4c]
jae 0x42e5a4
mov ecx, esi
mov dword [esp + 0x18], 1
sub ecx, dword [esp + 0x4c]
imul eax, ecx, 0xfffffff8
sub esi, ecx
add ebp, eax
mov eax, dword [esi]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], esi
cmp edx, dword [esp + 0x90]
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x18], eax
sete al
test eax, ecx
je 0x42e602
mov edx, dword [esp + 0x40]
mov ecx, ebp
and ecx, 0x1f
shl edx, cl
mov ecx, edi
shr edx, cl
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx + edx*2 + 1]
add ebp, eax
mov al, byte [ecx + edx*2]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x44], ebp
mov byte [edx], al
inc edx
mov dword [esp + 0x30], edx
jmp 0x42e542
mov esi, dword [esp + 0x94]
cmp edx, dword [esp + 0x90]
jae 0x42e654
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x10]
lea ebx, [ebx]
mov edx, dword [esp + 0x40]
mov ecx, ebp
and ecx, 0x1f
shl edx, cl
mov ecx, edi
shr edx, cl
movzx eax, byte [esi + edx*2 + 1]
add ebp, eax
mov al, byte [esi + edx*2]
mov byte [ebx], al
inc ebx
cmp ebx, dword [esp + 0x90]
jb 0x42e620
mov esi, dword [esp + 0x94]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x7c]
jmp 0x42e660
mov edx, dword [esp + 0x84]
cmp ebx, 0x20
jbe 0x42e676
mov dword [esp + 0x18], 3
jmp 0x42e6ed
cmp edx, dword [esp + 0x8c]
jb 0x42e693
mov eax, ebx
mov dword [esp + 0x18], 0
shr eax, 3
sub edx, eax
and ebx, 7
jmp 0x42e6d9
cmp edx, dword [esp + 0x88]
jne 0x42e6aa
cmp ebx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x18], eax
jmp 0x42e6ed
mov ebp, dword [esp + 0x88]
mov ecx, ebx
shr ecx, 3
mov eax, edx
sub eax, ecx
mov dword [esp + 0x18], 0
cmp eax, ebp
jae 0x42e6d2
mov ecx, edx
mov dword [esp + 0x18], 1
sub ecx, ebp
imul eax, ecx, 0xfffffff8
sub edx, ecx
add ebx, eax
mov ebp, dword [edx]
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], edx
cmp esi, dword [esp + 0x98]
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x18], eax
sete al
test eax, ecx
je 0x42e757
mov ecx, ebx
mov edx, ebp
and ecx, 0x1f
shl edx, cl
mov ecx, edi
shr edx, cl
mov ecx, dword [esp + 0x10]
movzx edi, byte [ecx + edx*2 + 1]
movzx eax, byte [ecx + edx*2]
add edi, ebx
mov byte [esi], al
mov ecx, edi
and ecx, 0x1f
mov eax, ebp
shl eax, cl
mov ecx, dword [esp + 0x1c]
shr eax, cl
mov ecx, dword [esp + 0x10]
movzx ebx, byte [ecx + eax*2 + 1]
movzx eax, byte [ecx + eax*2]
add ebx, edi
mov edi, dword [esp + 0x1c]
mov byte [esi + 1], al
add esi, 2
mov dword [esp + 0x80], ebx
jmp 0x42e660
cmp ebx, 0x20
jbe 0x42e766
mov edx, 3
jmp 0x42e7e6
cmp edx, dword [esp + 0x8c]
jb 0x42e786
mov eax, ebx
and ebx, 7
shr eax, 3
sub edx, eax
mov dword [esp + 0x84], edx
mov ebp, dword [edx]
xor edx, edx
jmp 0x42e7db
cmp edx, dword [esp + 0x88]
jne 0x42e79f
cmp ebx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x3c], eax
mov edx, eax
jmp 0x42e7e6
mov ebp, dword [esp + 0x88]
mov ecx, ebx
shr ecx, 3
mov eax, edx
sub eax, ecx
mov dword [esp + 0x3c], 0
cmp eax, ebp
jae 0x42e7c7
mov ecx, edx
mov dword [esp + 0x3c], 1
sub ecx, ebp
sub edx, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0x84], edx
mov ebp, dword [edx]
mov edx, dword [esp + 0x3c]
add ebx, eax
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], ebx
cmp esi, dword [esp + 0x9c]
sbb ecx, ecx
xor eax, eax
neg ecx
test edx, edx
sete al
test eax, ecx
je 0x42e82d
mov ecx, ebx
mov edx, ebp
and ecx, 0x1f
shl edx, cl
mov ecx, edi
shr edx, cl
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx + edx*2 + 1]
add ebx, eax
mov al, byte [ecx + edx*2]
mov edx, dword [esp + 0x84]
mov byte [esi], al
inc esi
mov dword [esp + 0x80], ebx
jmp 0x42e757
cmp esi, dword [esp + 0x9c]
jae 0x42e864
mov ecx, ebx
mov edx, ebp
and ecx, 0x1f
shl edx, cl
mov ecx, edi
shr edx, cl
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx + edx*2 + 1]
add ebx, eax
mov al, byte [ecx + edx*2]
mov byte [esi], al
inc esi
cmp esi, dword [esp + 0x9c]
jb 0x42e836
mov dword [esp + 0x80], ebx
lea eax, [esp + 0x7c]
push eax
call fcn.004332e0
mov edx, eax
lea eax, [esp + 0x40]
push eax
call fcn.004332e0
and edx, eax
lea eax, [esp + 0x54]
push eax
call fcn.004332e0
and edx, eax
lea eax, [esp + 0x68]
push eax
call fcn.004332e0
test eax, edx
mov eax, 0xffffffec
je 0x42e8a2
mov eax, dword [esp + 0xa8]
pop edi
pop esi
pop ebx
pop ebp
add esp, 0x90
ret 0x18