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

Disassembly:
sub esp, 0xb0
push ebx
mov ebx, dword [esp + 0xc4]
cmp ebx, 0xa
jae 0x42e922
mov eax, 0xffffffec
pop ebx
add esp, 0xb0
ret 0x18
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0xbc]
add eax, edx
mov dword [esp + 0x58], eax
lea eax, [ecx + 4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc0]
push ebp
push esi
push edi
movzx ebp, word [eax + 2]
mov edi, ebx
movzx esi, word [eax]
mov dword [esp + 0x18], ebp
movzx ebp, word [eax + 4]
add eax, 6
sub edi, ebp
mov dword [esp + 0x6c], eax
sub edi, dword [esp + 0x18]
sub edi, esi
mov dword [esp + 0x28], esi
add esi, eax
sub edi, 6
mov eax, dword [esp + 0x18]
add eax, esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xc8]
add eax, 3
shr eax, 2
add edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x48], edx
lea esi, [edx + eax]
add eax, esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x54], eax
mov eax, dword [ecx]
shr eax, 0x10
mov dword [esp + 0x4c], esi
movzx esi, al
cmp edi, ebx
ja 0x42edb6
push dword [esp + 0x28]
lea eax, [esp + 0x74]
push dword [esp + 0x70]
push eax
call fcn.00433300
cmp eax, 0xffffff88
ja 0x42f8a4
push dword [esp + 0x18]
lea eax, [esp + 0x88]
push dword [esp + 0x6c]
push eax
call fcn.00433300
cmp eax, 0xffffff88
ja 0x42f8a4
mov ebx, dword [esp + 0x44]
lea eax, [esp + 0x98]
push ebp
push ebx
push eax
call fcn.00433300
cmp eax, 0xffffff88
ja 0x42f8a4
push edi
lea eax, [ebx + ebp]
push eax
lea eax, [esp + 0xb4]
push eax
call fcn.00433300
cmp eax, 0xffffff88
ja 0x42f8a4
mov eax, dword [esp + 0x64]
neg esi
mov edx, dword [esp + 0x74]
add eax, 0xfffffffd
mov edi, dword [esp + 0x88]
and esi, 0x1f
cmp dword [esp + 0x2c], eax
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x9c]
mov ebp, dword [esp + 0xb0]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x18], esi
mov dword [esp + 0x3c], eax
jae 0x42ed85
mov eax, dword [esp + 0x30]
mov ecx, edx
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0xc4]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [esi], ax
movzx eax, byte [ecx + 2]
add edx, eax
mov esi, dword [esp + 0x48]
movzx eax, byte [ecx + 3]
mov ecx, edi
add dword [esp + 0xc4], eax
and ecx, 0x1f
mov eax, dword [esp + 0x34]
shl eax, cl
mov ecx, dword [esp + 0x18]
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [esi], ax
movzx eax, byte [ecx + 2]
add edi, eax
mov esi, dword [esp + 0x4c]
movzx eax, byte [ecx + 3]
mov ecx, ebx
add dword [esp + 0x48], eax
and ecx, 0x1f
mov eax, dword [esp + 0x38]
shl eax, cl
mov ecx, dword [esp + 0x18]
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [esi], ax
movzx eax, byte [ecx + 2]
mov esi, dword [esp + 0x54]
add ebx, eax
movzx eax, byte [ecx + 3]
mov ecx, ebp
add dword [esp + 0x4c], eax
and ecx, 0x1f
mov eax, dword [esp + 0x3c]
shl eax, cl
mov ecx, dword [esp + 0x18]
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [esi], ax
movzx eax, byte [ecx + 2]
mov esi, dword [esp + 0xc4]
add ebp, eax
movzx eax, byte [ecx + 3]
mov ecx, edx
add dword [esp + 0x54], eax
and ecx, 0x1f
mov eax, dword [esp + 0x30]
shl eax, cl
mov ecx, dword [esp + 0x18]
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [esi], ax
movzx eax, byte [ecx + 2]
mov esi, dword [esp + 0x18]
add eax, edx
mov dword [esp + 0x20], eax
movzx eax, byte [ecx + 3]
mov ecx, edi
add dword [esp + 0xc4], eax
and ecx, 0x1f
mov eax, dword [esp + 0x34]
shl eax, cl
mov edx, dword [esp + 0x48]
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [edx], ax
movzx eax, byte [ecx + 2]
add eax, edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
movzx eax, byte [ecx + 3]
mov ecx, ebx
add edx, eax
and ecx, 0x1f
mov eax, dword [esp + 0x38]
shl eax, cl
mov ecx, esi
shr eax, cl
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x4c]
lea ecx, [edi + eax*4]
movzx eax, word [ecx]
mov word [edx], ax
movzx eax, byte [ecx + 2]
add eax, ebx
mov dword [esp + 0x24], eax
movzx eax, byte [ecx + 3]
mov ecx, ebp
add edx, eax
and ecx, 0x1f
mov eax, dword [esp + 0x3c]
shl eax, cl
mov ecx, esi
shr eax, cl
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x54]
lea ecx, [edi + eax*4]
movzx eax, word [ecx]
mov word [edx], ax
movzx eax, byte [ecx + 2]
add eax, ebp
mov dword [esp + 0x50], eax
movzx eax, byte [ecx + 3]
mov ecx, dword [esp + 0x58]
add edx, eax
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x80]
jae 0x42ec6b
mov dword [esp + 0x28], 3
jmp 0x42ec89
mov eax, edx
and edx, 7
shr eax, 3
sub ecx, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x58], ecx
mov eax, dword [ecx]
mov dword [esp + 0x30], eax
xor eax, eax
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x94]
jae 0x42eca4
mov dword [esp + 0x6c], 3
jmp 0x42ecc4
mov eax, edi
mov dword [esp + 0x6c], 0
shr eax, 3
sub ecx, eax
and edi, 7
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x1c], edi
mov eax, dword [ecx]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x24]
cmp ecx, dword [esp + 0xa8]
jae 0x42ecdf
mov dword [esp + 0x20], 3
jmp 0x42ecfd
mov eax, ebx
and ebx, 7
shr eax, 3
sub ecx, eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x60], ecx
mov eax, dword [ecx]
xor ecx, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x50]
cmp ecx, dword [esp + 0xbc]
jae 0x42ed18
mov dword [esp + 0x68], 3
jmp 0x42ed38
mov eax, ebp
mov dword [esp + 0x68], 0
shr eax, 3
sub ecx, eax
and ebp, 7
mov dword [esp + 0x44], ecx
mov dword [esp + 0x50], ebp
mov eax, dword [ecx]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x64]
add eax, 0xfffffffd
cmp dword [esp + 0x54], eax
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x68], eax
sete al
and ecx, eax
mov eax, dword [esp + 0x20]
neg eax
sbb eax, eax
not eax
and eax, ecx
mov dword [esp + 0x20], eax
xor eax, eax
cmp dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x20]
sete al
and ecx, eax
mov eax, dword [esp + 0x28]
neg eax
sbb eax, eax
not eax
test ecx, eax
jne 0x42eab6
jmp 0x42ed95
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x50], ebp
mov eax, dword [esp + 0x10]
cmp dword [esp + 0xc4], eax
ja 0x42edb6
mov ecx, dword [esp + 0x40]
cmp dword [esp + 0x48], ecx
ja 0x42edb6
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x4c], ecx
jbe 0x42edc8
pop edi
pop esi
pop ebp
mov eax, 0xffffffec
pop ebx
add esp, 0xb0
ret 0x18
mov edi, dword [esp + 0x58]
lea ecx, [eax - 3]
mov ebp, dword [esp + 0xc4]
mov dword [esp + 0x28], ecx
lea ebx, [ebx]
cmp edx, 0x20
jbe 0x42edef
mov dword [esp + 0x18], 3
jmp 0x42ee5a
cmp edi, dword [esp + 0x80]
jb 0x42ee0c
mov eax, edx
mov dword [esp + 0x18], 0
shr eax, 3
sub edi, eax
and edx, 7
jmp 0x42ee50
cmp edi, dword [esp + 0x7c]
jne 0x42ee20
cmp edx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x18], eax
jmp 0x42ee5a
mov ecx, edx
mov dword [esp + 0x18], 0
shr ecx, 3
mov eax, edi
sub eax, ecx
cmp eax, dword [esp + 0x7c]
jae 0x42ee45
mov ecx, edi
mov dword [esp + 0x18], 1
sub ecx, dword [esp + 0x7c]
imul eax, ecx, 0xfffffff8
sub edi, ecx
mov ecx, dword [esp + 0x28]
add edx, eax
mov eax, dword [edi]
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], edx
cmp ebp, ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x18], eax
sete al
test eax, ecx
je 0x42eee5
mov eax, dword [esp + 0x30]
mov ecx, edx
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [ebp], ax
movzx eax, byte [ecx + 2]
add edx, eax
movzx eax, byte [ecx + 3]
add ebp, eax
mov ecx, edx
mov eax, dword [esp + 0x30]
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
mov dword [esp + 0xc4], ebp
movzx eax, word [ecx]
mov word [ebp], ax
movzx ebp, byte [ecx + 2]
movzx eax, byte [ecx + 3]
add ebp, edx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0xc4]
mov edx, dword [esp + 0x20]
add ebp, eax
mov dword [esp + 0xc4], ebp
jmp 0x42ede0
mov ecx, dword [esp + 0xc4]
mov ebx, edi
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x1c]
cmp edx, 0x20
jbe 0x42ef05
mov dword [esp + 0x18], 3
jmp 0x42ef74
cmp ebx, dword [esp + 0x80]
jb 0x42ef22
mov eax, edx
mov dword [esp + 0x18], 0
shr eax, 3
sub ebx, eax
and edx, 7
jmp 0x42ef6e
cmp ebx, dword [esp + 0x7c]
jne 0x42ef36
cmp edx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x18], eax
jmp 0x42ef74
mov eax, edx
mov dword [esp + 0x18], 0
shr eax, 3
mov dword [esp + 0x28], eax
mov eax, ebx
sub eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x7c]
jae 0x42ef63
mov eax, ebx
mov dword [esp + 0x18], 1
sub eax, dword [esp + 0x7c]
jmp 0x42ef67
mov eax, dword [esp + 0x28]
sub ebx, eax
imul eax, eax, 0xfffffff8
add edx, eax
mov eax, dword [ebx]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x10]
add eax, 0xfffffffe
cmp eax, ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp dword [esp + 0x18], eax
sete al
test eax, ecx
je 0x42efca
mov eax, dword [esp + 0x30]
mov ecx, edx
mov edi, dword [esp + 0xc4]
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
mov ax, word [ecx]
mov word [edi], ax
movzx eax, byte [ecx + 2]
add edx, eax
movzx eax, byte [ecx + 3]
mov ecx, edi
add ecx, eax
mov dword [esp + 0xc4], ecx
jmp 0x42eef2
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xc4]
add ecx, 0xfffffffe
mov dword [esp + 0x58], ebx
mov dword [esp + 0x20], edx
cmp eax, ecx
ja 0x42f031
mov edi, dword [esp + 0x14]
mov ebp, eax
mov ebx, dword [esp + 0x30]
mov edi, edi
mov ecx, edx
mov eax, ebx
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
lea ecx, [edi + eax*4]
mov ax, word [ecx]
mov word [ebp], ax
movzx eax, byte [ecx + 2]
add edx, eax
movzx eax, byte [ecx + 3]
mov ecx, dword [esp + 0x10]
add ebp, eax
lea eax, [ecx - 2]
cmp ebp, eax
jbe 0x42eff0
mov edi, dword [esp + 0x1c]
mov eax, ebp
mov dword [esp + 0xc4], ebp
mov dword [esp + 0x20], edx
jmp 0x42f035
mov ecx, dword [esp + 0x10]
cmp eax, ecx
jae 0x42f097
mov eax, dword [esp + 0x30]
mov ecx, edx
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
lea ebp, [eax + ecx*4]
mov al, byte [eax + ecx*4]
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x28], ebp
mov byte [ecx], al
mov eax, ebp
cmp byte [eax + 3], 1
jne 0x42f07b
movzx eax, byte [eax + 2]
add edx, eax
mov dword [esp + 0x20], edx
jmp 0x42f097
cmp edx, 0x20
jae 0x42f097
movzx eax, byte [eax + 2]
add edx, eax
mov dword [esp + 0x20], edx
cmp edx, 0x20
jbe 0x42f097
mov dword [esp + 0x20], 0x20
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x5c]
add ecx, 0xfffffffd
mov edx, dword [esp + 0x48]
mov dword [esp + 0x28], ecx
lea ebx, [ebx]
cmp edi, 0x20
jbe 0x42f0bf
mov dword [esp + 0x10], 3
jmp 0x42f12f
cmp ebx, dword [esp + 0x94]
jb 0x42f0dc
mov eax, edi
mov dword [esp + 0x10], 0
shr eax, 3
sub ebx, eax
and edi, 7
jmp 0x42f129
cmp ebx, dword [esp + 0x90]
jne 0x42f0f3
cmp edi, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x10], eax
jmp 0x42f12f
mov ecx, edi
mov dword [esp + 0x10], 0
shr ecx, 3
mov eax, ebx
sub eax, ecx
cmp eax, dword [esp + 0x90]
jae 0x42f11e
mov ecx, ebx
mov dword [esp + 0x10], 1
sub ecx, dword [esp + 0x90]
imul eax, ecx, 0xfffffff8
sub ebx, ecx
mov ecx, dword [esp + 0x28]
add edi, eax
mov eax, dword [ebx]
mov dword [esp + 0x34], eax
cmp edx, ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x10], eax
sete al
test eax, ecx
je 0x42f1ab
mov eax, dword [esp + 0x34]
mov ecx, edi
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [edx], ax
movzx edx, byte [ecx + 2]
movzx eax, byte [ecx + 3]
add edx, edi
mov edi, dword [esp + 0x48]
mov ecx, edx
add edi, eax
and ecx, 0x1f
mov eax, dword [esp + 0x34]
shl eax, cl
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
mov dword [esp + 0x48], edi
movzx eax, word [ecx]
mov word [edi], ax
movzx edi, byte [ecx + 2]
movzx eax, byte [ecx + 3]
add edi, edx
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x28]
add edx, eax
mov dword [esp + 0x48], edx
jmp 0x42f0b0
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x5c], ebx
add ecx, 0xfffffffe
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], ecx
cmp edi, 0x20
jbe 0x42f1d5
mov dword [esp + 0x10], 3
jmp 0x42f246
cmp ebp, dword [esp + 0x94]
jb 0x42f1f2
mov eax, edi
mov dword [esp + 0x10], 0
shr eax, 3
sub ebp, eax
and edi, 7
jmp 0x42f23f
cmp ebp, dword [esp + 0x90]
jne 0x42f209
cmp edi, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x10], eax
jmp 0x42f246
mov ecx, edi
mov dword [esp + 0x10], 0
shr ecx, 3
mov eax, ebp
sub eax, ecx
cmp eax, dword [esp + 0x90]
jae 0x42f234
mov ecx, ebp
mov dword [esp + 0x10], 1
sub ecx, dword [esp + 0x90]
imul eax, ecx, 0xfffffff8
sub ebp, ecx
mov ecx, dword [esp + 0x18]
add edi, eax
mov eax, dword [ebp]
mov dword [esp + 0x34], eax
cmp ecx, edx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp dword [esp + 0x10], eax
sete al
test eax, ecx
je 0x42f289
mov eax, dword [esp + 0x34]
mov ecx, edi
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
mov ax, word [ecx]
mov word [edx], ax
movzx eax, byte [ecx + 2]
add edi, eax
movzx eax, byte [ecx + 3]
mov ecx, dword [esp + 0x18]
add edx, eax
jmp 0x42f1c6
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x1c], edi
cmp edx, dword [esp + 0x18]
ja 0x42f2d0
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x34]
nop
mov ecx, edi
mov eax, ebp
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
lea ecx, [ebx + eax*4]
mov ax, word [ecx]
mov word [edx], ax
movzx eax, byte [ecx + 2]
add edi, eax
movzx eax, byte [ecx + 3]
add edx, eax
cmp edx, dword [esp + 0x18]
jbe 0x42f2a0
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x1c], edi
cmp edx, dword [esp + 0x40]
jae 0x42f323
mov eax, dword [esp + 0x34]
mov ecx, edi
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
lea ecx, [eax + ecx*4]
mov al, byte [ecx]
mov byte [edx], al
cmp byte [ecx + 3], 1
jne 0x42f306
movzx eax, byte [ecx + 2]
add edi, eax
jmp 0x42f31f
cmp edi, 0x20
jae 0x42f323
movzx eax, byte [ecx + 2]
add edi, eax
mov dword [esp + 0x1c], edi
cmp edi, 0x20
jbe 0x42f323
mov edi, 0x20
mov dword [esp + 0x1c], edi
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x60]
add ecx, 0xfffffffd
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x28], ecx
cmp ebx, 0x20
jbe 0x42f345
mov dword [esp + 0x10], 3
jmp 0x42f3b6
cmp ebp, dword [esp + 0xa8]
jb 0x42f362
mov eax, ebx
mov dword [esp + 0x10], 0
shr eax, 3
sub ebp, eax
and ebx, 7
jmp 0x42f3af
cmp ebp, dword [esp + 0xa4]
jne 0x42f379
cmp ebx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x10], eax
jmp 0x42f3b6
mov ecx, ebx
mov dword [esp + 0x10], 0
shr ecx, 3
mov eax, ebp
sub eax, ecx
cmp eax, dword [esp + 0xa4]
jae 0x42f3a4
mov ecx, ebp
mov dword [esp + 0x10], 1
sub ecx, dword [esp + 0xa4]
imul eax, ecx, 0xfffffff8
sub ebp, ecx
mov ecx, dword [esp + 0x28]
add ebx, eax
mov eax, dword [ebp]
mov dword [esp + 0x38], eax
cmp edx, ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x10], eax
sete al
test eax, ecx
je 0x42f432
mov eax, dword [esp + 0x38]
mov ecx, ebx
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [edx], ax
movzx edx, byte [ecx + 2]
movzx eax, byte [ecx + 3]
add edx, ebx
mov ebx, dword [esp + 0x4c]
mov ecx, edx
add ebx, eax
and ecx, 0x1f
mov eax, dword [esp + 0x38]
shl eax, cl
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
mov dword [esp + 0x4c], ebx
movzx eax, word [ecx]
mov word [ebx], ax
movzx ebx, byte [ecx + 2]
movzx eax, byte [ecx + 3]
add ebx, edx
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x28]
add edx, eax
mov dword [esp + 0x4c], edx
jmp 0x42f336
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x60], ebp
add ecx, 0xfffffffe
mov ebp, dword [esp + 0x50]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x40], ecx
lea ecx, [ecx]
cmp ebx, 0x20
jbe 0x42f45f
mov dword [esp + 0x10], 3
jmp 0x42f4cf
cmp edi, dword [esp + 0xa8]
jb 0x42f47c
mov eax, ebx
mov dword [esp + 0x10], 0
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x42f4c9
cmp edi, dword [esp + 0xa4]
jne 0x42f493
cmp ebx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x10], eax
jmp 0x42f4cf
mov ecx, ebx
mov dword [esp + 0x10], 0
shr ecx, 3
mov eax, edi
sub eax, ecx
cmp eax, dword [esp + 0xa4]
jae 0x42f4be
mov ecx, edi
mov dword [esp + 0x10], 1
sub ecx, dword [esp + 0xa4]
imul eax, ecx, 0xfffffff8
sub edi, ecx
mov ecx, dword [esp + 0x40]
add ebx, eax
mov eax, dword [edi]
mov dword [esp + 0x38], eax
cmp ecx, edx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp dword [esp + 0x10], eax
sete al
test eax, ecx
je 0x42f512
mov eax, dword [esp + 0x38]
mov ecx, ebx
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
mov ax, word [ecx]
mov word [edx], ax
movzx eax, byte [ecx + 2]
add ebx, eax
movzx eax, byte [ecx + 3]
mov ecx, dword [esp + 0x40]
add edx, eax
jmp 0x42f450
mov dword [esp + 0x60], edi
mov dword [esp + 0x24], ebx
cmp edx, dword [esp + 0x40]
ja 0x42f55f
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x38]
mov ecx, ebx
mov eax, edi
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
lea ecx, [eax*4]
mov ax, word [ecx + ebp]
mov word [edx], ax
movzx eax, byte [ecx + ebp + 2]
add ebx, eax
movzx eax, byte [ecx + ebp + 3]
add edx, eax
cmp edx, dword [esp + 0x40]
jbe 0x42f528
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x24], ebx
cmp edx, dword [esp + 0x2c]
jae 0x42f5b2
mov eax, dword [esp + 0x38]
mov ecx, ebx
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
lea ecx, [eax + ecx*4]
mov al, byte [ecx]
mov byte [edx], al
cmp byte [ecx + 3], 1
jne 0x42f595
movzx eax, byte [ecx + 2]
add ebx, eax
jmp 0x42f5ae
cmp ebx, 0x20
jae 0x42f5b2
movzx eax, byte [ecx + 2]
add ebx, eax
mov dword [esp + 0x24], ebx
cmp ebx, 0x20
jbe 0x42f5b2
mov ebx, 0x20
mov dword [esp + 0x24], ebx
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x54]
lea ebx, [ebx]
cmp ebp, 0x20
jbe 0x42f5cf
mov dword [esp + 0x2c], 3
jmp 0x42f63b
cmp edi, dword [esp + 0xbc]
jb 0x42f5ec
mov eax, ebp
mov dword [esp + 0x2c], 0
shr eax, 3
sub edi, eax
and ebp, 7
jmp 0x42f635
cmp edi, dword [esp + 0xb8]
jne 0x42f603
cmp ebp, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x2c], eax
jmp 0x42f63b
mov ecx, ebp
mov dword [esp + 0x2c], 0
shr ecx, 3
mov eax, edi
sub eax, ecx
cmp eax, dword [esp + 0xb8]
jae 0x42f62e
mov ecx, edi
mov dword [esp + 0x2c], 1
sub ecx, dword [esp + 0xb8]
imul eax, ecx, 0xfffffff8
sub edi, ecx
add ebp, eax
mov eax, dword [edi]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x64]
add eax, 0xfffffffd
cmp edx, eax
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x2c], eax
sete al
test eax, ecx
je 0x42f6bb
mov eax, dword [esp + 0x3c]
mov ecx, ebp
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [edx], ax
movzx edx, byte [ecx + 2]
movzx eax, byte [ecx + 3]
add edx, ebp
mov ebp, dword [esp + 0x54]
mov ecx, edx
add ebp, eax
and ecx, 0x1f
mov eax, dword [esp + 0x3c]
shl eax, cl
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
mov dword [esp + 0x54], ebp
movzx eax, word [ecx]
mov word [ebp], ax
movzx ebp, byte [ecx + 2]
movzx eax, byte [ecx + 3]
add ebp, edx
mov edx, dword [esp + 0x54]
add edx, eax
mov dword [esp + 0x54], edx
jmp 0x42f5c0
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x44], edi
add ecx, 0xfffffffe
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x40], ecx
cmp ebp, 0x20
jbe 0x42f6e1
mov dword [esp + 0x2c], 3
jmp 0x42f751
cmp ebx, dword [esp + 0xbc]
jb 0x42f6fe
mov eax, ebp
mov dword [esp + 0x2c], 0
shr eax, 3
sub ebx, eax
and ebp, 7
jmp 0x42f74b
cmp ebx, dword [esp + 0xb8]
jne 0x42f715
cmp ebp, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x2c], eax
jmp 0x42f751
mov ecx, ebp
mov dword [esp + 0x2c], 0
shr ecx, 3
mov eax, ebx
sub eax, ecx
cmp eax, dword [esp + 0xb8]
jae 0x42f740
mov ecx, ebx
mov dword [esp + 0x2c], 1
sub ecx, dword [esp + 0xb8]
imul eax, ecx, 0xfffffff8
sub ebx, ecx
mov ecx, dword [esp + 0x40]
add ebp, eax
mov eax, dword [ebx]
mov dword [esp + 0x3c], eax
cmp ecx, edx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp dword [esp + 0x2c], eax
sete al
test eax, ecx
je 0x42f794
mov eax, dword [esp + 0x3c]
mov ecx, ebp
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
mov ax, word [ecx]
mov word [edx], ax
movzx eax, byte [ecx + 2]
add ebp, eax
movzx eax, byte [ecx + 3]
mov ecx, dword [esp + 0x40]
add edx, eax
jmp 0x42f6d2
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x24]
cmp edx, dword [esp + 0x40]
ja 0x42f7e0
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x3c]
lea ebx, [ebx]
mov ecx, ebp
mov eax, ebx
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
lea ecx, [edi + eax*4]
mov ax, word [ecx]
mov word [edx], ax
movzx eax, byte [ecx + 2]
add ebp, eax
movzx eax, byte [ecx + 3]
add edx, eax
cmp edx, dword [esp + 0x40]
jbe 0x42f7b0
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
cmp edx, dword [esp + 0x64]
jae 0x42f82b
mov eax, dword [esp + 0x3c]
mov ecx, ebp
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x3c]
lea ecx, [eax + esi*4]
mov al, byte [ecx]
mov byte [edx], al
cmp byte [ecx + 3], 1
jne 0x42f816
movzx eax, byte [ecx + 2]
add ebp, eax
jmp 0x42f82b
cmp ebp, 0x20
jae 0x42f82b
movzx eax, byte [ecx + 2]
add ebp, eax
cmp ebp, 0x20
jbe 0x42f82b
mov ebp, 0x20
mov eax, dword [esp + 0x58]
cmp eax, dword [esp + 0x7c]
jne 0x42f843
cmp dword [esp + 0x20], 0x20
jne 0x42f843
mov ecx, 1
jmp 0x42f845
xor ecx, ecx
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x90]
jne 0x42f85c
cmp edi, 0x20
jne 0x42f85c
lea esi, [edi - 0x1f]
jmp 0x42f85e
xor esi, esi
mov eax, dword [esp + 0x60]
cmp eax, dword [esp + 0xa4]
jne 0x42f875
cmp ebx, 0x20
jne 0x42f875
lea edx, [ebx - 0x1f]
jmp 0x42f877
xor edx, edx
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0xb8]
jne 0x42f88e
cmp ebp, 0x20
jne 0x42f88e
lea eax, [ebp - 0x1f]
jmp 0x42f890
xor eax, eax
and ecx, eax
mov eax, 0xffffffec
and ecx, edx
test esi, ecx
je 0x42f8a4
mov eax, dword [esp + 0xc8]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret 0x18