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

Disassembly:
sub esp, 0x88
push edi
mov edi, dword [esp + 0x9c]
cmp edi, 0xa
jae 0x442e80
mov eax, 0xffffffec
pop edi
add esp, 0x88
ret
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x98]
movzx edx, word [ecx + 4]
push ebx
movzx ebx, word [ecx + 2]
push ebp
mov ebp, dword [esp + 0x98]
add eax, ebp
add ecx, 6
mov dword [esp + 0x2c], eax
add eax, 0xfffffffd
mov dword [esp + 0x8c], ecx
mov dword [esp + 0xc], eax
movzx eax, word [ecx - 6]
add ecx, eax
mov dword [esp + 0x90], ecx
add ecx, ebx
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x9c]
add ecx, 3
sub edi, edx
shr ecx, 2
mov dword [esp + 0x30], edx
lea edx, [ecx + ebp]
mov dword [esp + 0x78], edx
add edx, ecx
add ecx, edx
sub edi, ebx
push esi
mov esi, dword [esp + 0xac]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x7c]
sub edi, eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x74], edx
movzx edx, byte [esi + 2]
sub edi, 6
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x8c], 1
cmp edi, dword [esp + 0xa8]
ja 0x4431f0
cmp ecx, dword [esp + 0x30]
ja 0x4431f0
cmp dword [esp + 0xa0], 6
jb 0x4431f0
mov edx, dword [esp + 0x90]
lea ecx, [esp + 0x1c]
push ecx
call fcn.004417a0
add esp, 4
cmp eax, 0xffffff88
ja 0x443b03
lea edx, [esp + 0x60]
push edx
mov edx, dword [esp + 0x98]
mov eax, ebx
call fcn.004417a0
add esp, 4
cmp eax, 0xffffff88
ja 0x443b03
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x88]
lea eax, [esp + 0x38]
push eax
mov eax, ebx
call fcn.004417a0
add esp, 4
cmp eax, 0xffffff88
ja 0x443b03
mov ecx, dword [esp + 0x88]
lea eax, [esp + 0x4c]
push eax
lea edx, [ecx + ebx]
mov eax, edi
call fcn.004417a0
add esp, 4
cmp eax, 0xffffff88
ja 0x443b03
mov ecx, dword [esp + 0x30]
sub ecx, dword [esp + 0x18]
cmp ecx, 4
jb 0x4431d1
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x18], edx
sbb eax, eax
neg eax
test al, 1
je 0x4431d1
mov edi, dword [esp + 0x14]
neg edi
and edi, 0x1f
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov ecx, ebx
and ecx, 0x1f
mov eax, edx
shl eax, cl
mov ecx, edi
inc ebp
mov dword [esp + 0x10], ebp
shr eax, cl
movzx ecx, byte [esi + eax*2 + 4]
movzx eax, byte [esi + eax*2 + 5]
mov byte [ebp - 1], al
mov ebp, dword [esp + 0x64]
add ebx, ecx
mov ecx, ebp
and ecx, 0x1f
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x60]
mov eax, ebx
shl eax, cl
mov ecx, edi
shr eax, cl
movzx ecx, byte [esi + eax*2 + 4]
movzx eax, byte [esi + eax*2 + 5]
add ebp, ecx
mov dword [esp + 0x64], ebp
mov ebp, dword [esp + 0x78]
mov byte [ebp], al
mov eax, dword [esp + 0x38]
inc ebp
mov dword [esp + 0x78], ebp
mov ebp, dword [esp + 0x3c]
mov ecx, ebp
and ecx, 0x1f
shl eax, cl
mov ecx, edi
shr eax, cl
movzx ecx, byte [esi + eax*2 + 4]
movzx eax, byte [esi + eax*2 + 5]
add ebp, ecx
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x74]
mov byte [ebp], al
mov eax, dword [esp + 0x4c]
inc ebp
mov dword [esp + 0x74], ebp
mov ebp, dword [esp + 0x50]
mov ecx, ebp
and ecx, 0x1f
shl eax, cl
mov ecx, edi
shr eax, cl
movzx ecx, byte [esi + eax*2 + 4]
add ebp, ecx
movzx ecx, byte [esi + eax*2 + 5]
mov eax, dword [esp + 0x84]
mov byte [eax], cl
mov ecx, dword [esp + 0x20]
and ecx, 0x1f
shl edx, cl
mov ecx, edi
mov dword [esp + 0x50], ebp
inc eax
shr edx, cl
mov ebp, edx
movzx edx, byte [esi + ebp*2 + 4]
movzx ecx, byte [esi + ebp*2 + 5]
add dword [esp + 0x20], edx
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x64]
mov byte [ebp], cl
mov ecx, edx
and ecx, 0x1f
shl ebx, cl
mov ecx, edi
inc ebp
shr ebx, cl
movzx ecx, byte [esi + ebx*2 + 4]
add edx, ecx
mov dword [esp + 0x64], edx
movzx edx, byte [esi + ebx*2 + 5]
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x3c]
mov byte [ecx], dl
mov edx, dword [esp + 0x38]
inc ecx
mov dword [esp + 0x78], ecx
mov ecx, ebx
and ecx, 0x1f
shl edx, cl
mov ecx, edi
inc eax
mov dword [esp + 0x84], eax
shr edx, cl
movzx ecx, byte [esi + edx*2 + 4]
movzx edx, byte [esi + edx*2 + 5]
add ebx, ecx
mov ecx, dword [esp + 0x74]
mov byte [ecx], dl
mov edx, dword [esp + 0x4c]
inc ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x50]
mov ecx, ebx
and ecx, 0x1f
shl edx, cl
mov ecx, edi
shr edx, cl
movzx ecx, byte [esi + edx*2 + 4]
movzx edx, byte [esi + edx*2 + 5]
mov byte [eax - 1], dl
add ebx, ecx
lea eax, [esp + 0x4c]
mov dword [esp + 0x50], ebx
call fcn.004418c0
mov ebx, eax
neg ebx
sbb ebx, ebx
lea eax, [esp + 0x38]
inc ebx
call fcn.004418c0
neg eax
sbb eax, eax
inc eax
and ebx, eax
lea eax, [esp + 0x60]
call fcn.004418c0
neg eax
sbb eax, eax
inc eax
and ebx, eax
lea eax, [esp + 0x1c]
call fcn.004418c0
mov ecx, dword [esp + 0x30]
neg eax
sbb eax, eax
inc eax
and ebx, eax
mov eax, dword [esp + 0x8c]
add ecx, 0xfffffffd
and eax, ebx
cmp dword [esp + 0x84], ecx
mov dword [esp + 0x8c], eax
sbb ecx, ecx
neg ecx
test eax, ecx
jne 0x443002
mov eax, dword [esp + 0x7c]
cmp ebp, eax
ja 0x4431f0
mov edx, dword [esp + 0x80]
cmp dword [esp + 0x78], edx
ja 0x4431f0
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x74], ecx
jbe 0x443200
pop esi
pop ebp
pop ebx
mov eax, 0xffffffec
pop edi
add esp, 0x88
ret
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
sub eax, ebp
cmp eax, 3
mov eax, dword [esp + 0x20]
mov ebx, ebp
jle 0x4432f2
lea esp, [esp]
cmp eax, 0x20
jbe 0x44322c
mov edi, 3
jmp 0x44327f
cmp edx, dword [esp + 0x2c]
jb 0x443240
mov ecx, eax
shr ecx, 3
sub edx, ecx
and eax, 7
xor edi, edi
jmp 0x443279
cmp edx, edi
jne 0x44324e
cmp eax, 0x20
sbb edi, edi
add edi, 2
jmp 0x44327f
mov ecx, eax
shr ecx, 3
mov ebp, edx
sub ebp, ecx
mov dword [esp + 0x10], 0
cmp ebp, edi
jae 0x44326e
mov ecx, edx
sub ecx, edi
mov edi, 1
jmp 0x443272
mov edi, dword [esp + 0x10]
sub edx, ecx
neg ecx
lea eax, [eax + ecx*8]
mov ecx, dword [edx]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x7c]
add ecx, 0xfffffffd
cmp ebx, ecx
sbb ecx, ecx
mov dword [esp + 0x10], eax
xor eax, eax
neg ecx
test edi, edi
sete al
test eax, ecx
mov eax, dword [esp + 0x10]
je 0x443333
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov ecx, eax
and ecx, 0x1f
shl ebp, cl
neg edi
and edi, 0x1f
mov ecx, edi
shr ebp, cl
inc ebx
movzx ecx, byte [esi + ebp*2 + 4]
add eax, ecx
movzx ecx, byte [esi + ebp*2 + 5]
mov ebp, dword [esp + 0x1c]
mov byte [ebx - 1], cl
mov ecx, eax
and ecx, 0x1f
shl ebp, cl
mov ecx, edi
mov edi, dword [esp + 0x28]
shr ebp, cl
movzx ecx, byte [esi + ebp*2 + 4]
add eax, ecx
movzx ecx, byte [esi + ebp*2 + 5]
mov byte [ebx], cl
inc ebx
jmp 0x443220
cmp eax, 0x20
ja 0x443345
cmp edx, dword [esp + 0x2c]
jb 0x44330f
mov ecx, eax
shr ecx, 3
sub edx, ecx
mov ecx, dword [edx]
and eax, 7
mov dword [esp + 0x1c], ecx
jmp 0x443337
cmp edx, edi
je 0x443340
mov ecx, eax
shr ecx, 3
mov ebp, edx
sub ebp, ecx
cmp ebp, edi
jae 0x443324
mov ecx, edx
sub ecx, edi
sub edx, ecx
neg ecx
lea eax, [eax + ecx*8]
mov ecx, dword [edx]
mov dword [esp + 0x1c], ecx
jmp 0x443337
mov edi, dword [esp + 0x28]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
nop
cmp eax, 0x20
jbe 0x44334c
mov edi, 3
jmp 0x44339f
cmp edx, dword [esp + 0x2c]
jb 0x443360
mov ecx, eax
shr ecx, 3
sub edx, ecx
and eax, 7
xor edi, edi
jmp 0x443399
cmp edx, edi
jne 0x44336e
cmp eax, 0x20
sbb edi, edi
add edi, 2
jmp 0x44339f
mov ecx, eax
shr ecx, 3
mov ebp, edx
sub ebp, ecx
mov dword [esp + 0x10], 0
cmp ebp, edi
jae 0x44338e
mov ecx, edx
sub ecx, edi
mov edi, 1
jmp 0x443392
mov edi, dword [esp + 0x10]
sub edx, ecx
neg ecx
lea eax, [eax + ecx*8]
mov ecx, dword [edx]
mov dword [esp + 0x1c], ecx
cmp ebx, dword [esp + 0x7c]
mov dword [esp + 0x10], eax
sbb ecx, ecx
xor eax, eax
neg ecx
test edi, edi
sete al
test eax, ecx
mov eax, dword [esp + 0x10]
je 0x4433e7
mov edi, dword [esp + 0x1c]
mov ecx, eax
and ecx, 0x1f
shl edi, cl
mov ecx, dword [esp + 0x14]
neg ecx
and ecx, 0x1f
shr edi, cl
movzx ecx, byte [esi + edi*2 + 4]
add eax, ecx
mov cl, byte [esi + edi*2 + 5]
mov edi, dword [esp + 0x28]
mov byte [ebx], cl
inc ebx
jmp 0x443340
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
cmp ebx, dword [esp + 0x7c]
jae 0x443428
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
neg edi
and edi, 0x1f
mov ecx, eax
and ecx, 0x1f
mov edx, ebp
shl edx, cl
mov ecx, edi
inc ebx
shr edx, cl
movzx ecx, byte [esi + edx*2 + 4]
mov dl, byte [esi + edx*2 + 5]
mov byte [ebx - 1], dl
add eax, ecx
cmp ebx, dword [esp + 0x7c]
jb 0x443402
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x78]
mov edi, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov ecx, eax
sub ecx, ebx
cmp ecx, 3
jle 0x443520
add eax, 0xfffffffd
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x64]
cmp eax, 0x20
jbe 0x44345f
mov edi, 3
jmp 0x4434b2
cmp edx, dword [esp + 0x70]
jb 0x443473
mov ecx, eax
shr ecx, 3
sub edx, ecx
and eax, 7
xor edi, edi
jmp 0x4434ac
cmp edx, edi
jne 0x443481
cmp eax, 0x20
sbb edi, edi
add edi, 2
jmp 0x4434b2
mov ecx, eax
shr ecx, 3
mov ebp, edx
sub ebp, ecx
mov dword [esp + 0x10], 0
cmp ebp, edi
jae 0x4434a1
mov ecx, edx
sub ecx, edi
mov edi, 1
jmp 0x4434a5
mov edi, dword [esp + 0x10]
sub edx, ecx
neg ecx
lea eax, [eax + ecx*8]
mov ecx, dword [edx]
mov dword [esp + 0x60], ecx
cmp ebx, dword [esp + 0x34]
mov dword [esp + 0x10], eax
sbb ecx, ecx
xor eax, eax
neg ecx
test edi, edi
sete al
test eax, ecx
mov eax, dword [esp + 0x10]
je 0x443565
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x60]
mov ecx, eax
and ecx, 0x1f
shl ebp, cl
neg edi
and edi, 0x1f
mov ecx, edi
shr ebp, cl
inc ebx
movzx ecx, byte [esi + ebp*2 + 4]
add eax, ecx
movzx ecx, byte [esi + ebp*2 + 5]
mov ebp, dword [esp + 0x60]
mov byte [ebx - 1], cl
mov ecx, eax
and ecx, 0x1f
shl ebp, cl
mov ecx, edi
mov edi, dword [esp + 0x6c]
shr ebp, cl
movzx ecx, byte [esi + ebp*2 + 4]
add eax, ecx
movzx ecx, byte [esi + ebp*2 + 5]
mov byte [ebx], cl
inc ebx
jmp 0x443453
mov eax, dword [esp + 0x64]
cmp eax, 0x20
ja 0x443576
cmp edx, dword [esp + 0x70]
jb 0x443541
mov ecx, eax
shr ecx, 3
sub edx, ecx
mov ecx, dword [edx]
and eax, 7
mov dword [esp + 0x60], ecx
jmp 0x443569
cmp edx, edi
je 0x443571
mov ecx, eax
shr ecx, 3
mov ebp, edx
sub ebp, ecx
cmp ebp, edi
jae 0x443556
mov ecx, edx
sub ecx, edi
sub edx, ecx
neg ecx
lea eax, [eax + ecx*8]
mov ecx, dword [edx]
mov dword [esp + 0x60], ecx
jmp 0x443569
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
cmp eax, 0x20
jbe 0x44357d
mov edi, 3
jmp 0x4435d0
cmp edx, dword [esp + 0x70]
jb 0x443591
mov ecx, eax
shr ecx, 3
sub edx, ecx
and eax, 7
xor edi, edi
jmp 0x4435ca
cmp edx, edi
jne 0x44359f
cmp eax, 0x20
sbb edi, edi
add edi, 2
jmp 0x4435d0
mov ecx, eax
shr ecx, 3
mov ebp, edx
sub ebp, ecx
mov dword [esp + 0x10], 0
cmp ebp, edi
jae 0x4435bf
mov ecx, edx
sub ecx, edi
mov edi, 1
jmp 0x4435c3
mov edi, dword [esp + 0x10]
sub edx, ecx
neg ecx
lea eax, [eax + ecx*8]
mov ecx, dword [edx]
mov dword [esp + 0x60], ecx
cmp ebx, dword [esp + 0x80]
mov dword [esp + 0x10], eax
sbb ecx, ecx
xor eax, eax
neg ecx
test edi, edi
sete al
test eax, ecx
mov eax, dword [esp + 0x10]
je 0x44361b
mov edi, dword [esp + 0x60]
mov ecx, eax
and ecx, 0x1f
shl edi, cl
mov ecx, dword [esp + 0x14]
neg ecx
and ecx, 0x1f
shr edi, cl
movzx ecx, byte [esi + edi*2 + 4]
add eax, ecx
mov cl, byte [esi + edi*2 + 5]
mov edi, dword [esp + 0x6c]
mov byte [ebx], cl
inc ebx
jmp 0x443571
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
cmp ebx, dword [esp + 0x80]
jae 0x443669
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x60]
neg edi
and edi, 0x1f
lea esp, [esp]
mov ecx, eax
and ecx, 0x1f
mov edx, ebp
shl edx, cl
mov ecx, edi
inc ebx
shr edx, cl
movzx ecx, byte [esi + edx*2 + 4]
mov dl, byte [esi + edx*2 + 5]
mov byte [ebx - 1], dl
add eax, ecx
cmp ebx, dword [esp + 0x80]
jb 0x443640
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x74]
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov ecx, eax
sub ecx, ebx
cmp ecx, 3
jle 0x44375e
add eax, 0xfffffffd
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x3c]
cmp eax, 0x20
jbe 0x44369d
mov edi, 3
jmp 0x4436f0
cmp edx, dword [esp + 0x48]
jb 0x4436b1
mov ecx, eax
shr ecx, 3
sub edx, ecx
and eax, 7
xor edi, edi
jmp 0x4436ea
cmp edx, edi
jne 0x4436bf
cmp eax, 0x20
sbb edi, edi
add edi, 2
jmp 0x4436f0
mov ecx, eax
shr ecx, 3
mov ebp, edx
sub ebp, ecx
mov dword [esp + 0x10], 0
cmp ebp, edi
jae 0x4436df
mov ecx, edx
sub ecx, edi
mov edi, 1
jmp 0x4436e3
mov edi, dword [esp + 0x10]
sub edx, ecx
neg ecx
lea eax, [eax + ecx*8]
mov ecx, dword [edx]
mov dword [esp + 0x38], ecx
cmp ebx, dword [esp + 0x34]
mov dword [esp + 0x10], eax
sbb ecx, ecx
xor eax, eax
neg ecx
test edi, edi
sete al
test eax, ecx
mov eax, dword [esp + 0x10]
je 0x4437a3
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x38]
mov ecx, eax
and ecx, 0x1f
shl ebp, cl
neg edi
and edi, 0x1f
mov ecx, edi
shr ebp, cl
inc ebx
movzx ecx, byte [esi + ebp*2 + 4]
add eax, ecx
movzx ecx, byte [esi + ebp*2 + 5]
mov ebp, dword [esp + 0x38]
mov byte [ebx - 1], cl
mov ecx, eax
and ecx, 0x1f
shl ebp, cl
mov ecx, edi
mov edi, dword [esp + 0x44]
shr ebp, cl
movzx ecx, byte [esi + ebp*2 + 4]
add eax, ecx
movzx ecx, byte [esi + ebp*2 + 5]
mov byte [ebx], cl
inc ebx
jmp 0x443691
mov eax, dword [esp + 0x3c]
cmp eax, 0x20
ja 0x4437b5
cmp edx, dword [esp + 0x48]
jb 0x44377f
mov ecx, eax
shr ecx, 3
sub edx, ecx
mov ecx, dword [edx]
and eax, 7
mov dword [esp + 0x38], ecx
jmp 0x4437a7
cmp edx, edi
je 0x4437b0
mov ecx, eax
shr ecx, 3
mov ebp, edx
sub ebp, ecx
cmp ebp, edi
jae 0x443794
mov ecx, edx
sub ecx, edi
sub edx, ecx
neg ecx
lea eax, [eax + ecx*8]
mov ecx, dword [edx]
mov dword [esp + 0x38], ecx
jmp 0x4437a7
mov edi, dword [esp + 0x44]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
nop
cmp eax, 0x20
jbe 0x4437bc
mov edi, 3
jmp 0x44380f
cmp edx, dword [esp + 0x48]
jb 0x4437d0
mov ecx, eax
shr ecx, 3
sub edx, ecx
and eax, 7
xor edi, edi
jmp 0x443809
cmp edx, edi
jne 0x4437de
cmp eax, 0x20
sbb edi, edi
add edi, 2
jmp 0x44380f
mov ecx, eax
shr ecx, 3
mov ebp, edx
sub ebp, ecx
mov dword [esp + 0x10], 0
cmp ebp, edi
jae 0x4437fe
mov ecx, edx
sub ecx, edi
mov edi, 1
jmp 0x443802
mov edi, dword [esp + 0x10]
sub edx, ecx
neg ecx
lea eax, [eax + ecx*8]
mov ecx, dword [edx]
mov dword [esp + 0x38], ecx
cmp ebx, dword [esp + 0x18]
mov dword [esp + 0x10], eax
sbb ecx, ecx
xor eax, eax
neg ecx
test edi, edi
sete al
test eax, ecx
mov eax, dword [esp + 0x10]
je 0x443857
mov edi, dword [esp + 0x38]
mov ecx, eax
and ecx, 0x1f
shl edi, cl
mov ecx, dword [esp + 0x14]
neg ecx
and ecx, 0x1f
shr edi, cl
movzx ecx, byte [esi + edi*2 + 4]
add eax, ecx
mov cl, byte [esi + edi*2 + 5]
mov edi, dword [esp + 0x44]
mov byte [ebx], cl
inc ebx
jmp 0x4437b0
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
cmp ebx, dword [esp + 0x18]
jae 0x443898
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x38]
neg edi
and edi, 0x1f
mov ecx, eax
and ecx, 0x1f
mov edx, ebp
shl edx, cl
mov ecx, edi
inc ebx
shr edx, cl
movzx ecx, byte [esi + edx*2 + 4]
mov dl, byte [esi + edx*2 + 5]
mov byte [ebx - 1], dl
add eax, ecx
cmp ebx, dword [esp + 0x18]
jb 0x443872
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x84]
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov ecx, eax
sub ecx, ebx
cmp ecx, 3
jle 0x443990
add eax, 0xfffffffd
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x50]
cmp eax, 0x20
jbe 0x4438cf
mov edi, 3
jmp 0x443922
cmp edx, dword [esp + 0x5c]
jb 0x4438e3
mov ecx, eax
shr ecx, 3
sub edx, ecx
and eax, 7
xor edi, edi
jmp 0x44391c
cmp edx, edi
jne 0x4438f1
cmp eax, 0x20
sbb edi, edi
add edi, 2
jmp 0x443922
mov ecx, eax
shr ecx, 3
mov ebp, edx
sub ebp, ecx
mov dword [esp + 0x10], 0
cmp ebp, edi
jae 0x443911
mov ecx, edx
sub ecx, edi
mov edi, 1
jmp 0x443915
mov edi, dword [esp + 0x10]
sub edx, ecx
neg ecx
lea eax, [eax + ecx*8]
mov ecx, dword [edx]
mov dword [esp + 0x4c], ecx
cmp ebx, dword [esp + 0x34]
mov dword [esp + 0x10], eax
sbb ecx, ecx
xor eax, eax
neg ecx
test edi, edi
sete al
test eax, ecx
mov eax, dword [esp + 0x10]
je 0x4439d5
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x4c]
mov ecx, eax
and ecx, 0x1f
shl ebp, cl
neg edi
and edi, 0x1f
mov ecx, edi
shr ebp, cl
inc ebx
movzx ecx, byte [esi + ebp*2 + 4]
add eax, ecx
movzx ecx, byte [esi + ebp*2 + 5]
mov ebp, dword [esp + 0x4c]
mov byte [ebx - 1], cl
mov ecx, eax
and ecx, 0x1f
shl ebp, cl
mov ecx, edi
mov edi, dword [esp + 0x58]
shr ebp, cl
movzx ecx, byte [esi + ebp*2 + 4]
add eax, ecx
movzx ecx, byte [esi + ebp*2 + 5]
mov byte [ebx], cl
inc ebx
jmp 0x4438c3
mov eax, dword [esp + 0x50]
cmp eax, 0x20
ja 0x4439e6
cmp edx, dword [esp + 0x5c]
jb 0x4439b1
mov ecx, eax
shr ecx, 3
sub edx, ecx
mov ecx, dword [edx]
and eax, 7
mov dword [esp + 0x4c], ecx
jmp 0x4439d9
cmp edx, edi
je 0x4439e1
mov ecx, eax
shr ecx, 3
mov ebp, edx
sub ebp, ecx
cmp ebp, edi
jae 0x4439c6
mov ecx, edx
sub ecx, edi
sub edx, ecx
neg ecx
lea eax, [eax + ecx*8]
mov ecx, dword [edx]
mov dword [esp + 0x4c], ecx
jmp 0x4439d9
mov edi, dword [esp + 0x58]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
cmp eax, 0x20
jbe 0x4439ed
mov edi, 3
jmp 0x443a40
cmp edx, dword [esp + 0x5c]
jb 0x443a01
mov ecx, eax
shr ecx, 3
sub edx, ecx
and eax, 7
xor edi, edi
jmp 0x443a3a
cmp edx, edi
jne 0x443a0f
cmp eax, 0x20
sbb edi, edi
add edi, 2
jmp 0x443a40
mov ecx, eax
shr ecx, 3
mov ebp, edx
sub ebp, ecx
mov dword [esp + 0x10], 0
cmp ebp, edi
jae 0x443a2f
mov ecx, edx
sub ecx, edi
mov edi, 1
jmp 0x443a33
mov edi, dword [esp + 0x10]
sub edx, ecx
neg ecx
lea eax, [eax + ecx*8]
mov ecx, dword [edx]
mov dword [esp + 0x4c], ecx
cmp ebx, dword [esp + 0x30]
mov dword [esp + 0x10], eax
sbb ecx, ecx
xor eax, eax
neg ecx
test edi, edi
sete al
test eax, ecx
mov eax, dword [esp + 0x10]
je 0x443a88
mov edi, dword [esp + 0x4c]
mov ecx, eax
and ecx, 0x1f
shl edi, cl
mov ecx, dword [esp + 0x14]
neg ecx
and ecx, 0x1f
shr edi, cl
movzx ecx, byte [esi + edi*2 + 4]
add eax, ecx
mov cl, byte [esi + edi*2 + 5]
mov edi, dword [esp + 0x58]
mov byte [ebx], cl
inc ebx
jmp 0x4439e1
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
cmp ebx, dword [esp + 0x30]
jae 0x443ac9
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x4c]
neg edi
and edi, 0x1f
mov ecx, eax
and ecx, 0x1f
mov edx, ebp
shl edx, cl
mov ecx, edi
inc ebx
shr edx, cl
movzx ecx, byte [esi + edx*2 + 4]
mov dl, byte [esi + edx*2 + 5]
mov byte [ebx - 1], dl
add eax, ecx
cmp ebx, dword [esp + 0x30]
jb 0x443aa3
mov dword [esp + 0x50], eax
lea eax, [esp + 0x4c]
call fcn.004418f0
mov edx, eax
lea eax, [esp + 0x38]
call fcn.004418f0
and edx, eax
lea eax, [esp + 0x60]
call fcn.004418f0
and edx, eax
lea eax, [esp + 0x1c]
call fcn.004418f0
test eax, edx
mov eax, 0xffffffec
je 0x443b03
mov eax, dword [esp + 0xa0]
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x88
ret