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

Disassembly:
sub esp, 0x68
push ebx
mov ebx, ecx
push ebp
push esi
push edi
mov eax, dword [ebx + 0x20]
and eax, 7
mov dword [esp + 0x10], ebx
lea edx, [eax + eax*2]
mov eax, dword [edx*4 + 0x6b1a90]
mov esi, dword [ebx + eax*4 + 0x34]
mov eax, dword [edx*4 + 0x6b1a94]
mov dword [esp + 0x64], esi
mov edi, dword [ebx + eax*4 + 0x34]
mov eax, dword [edx*4 + 0x6b1a98]
mov dword [esp + 0x2c], edi
mov eax, dword [ebx + eax*4 + 0x34]
lea edx, [eax*4]
mov eax, edi
sub eax, dword [ebx + 8]
imul ecx, eax, 0x101c
mov eax, dword [ebx + 0x50]
mov dword [esp + 0x14], edx
mov eax, dword [eax + edx]
add ecx, eax
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
add eax, edx
mov dword [esp + 0x38], ecx
mov dword [ecx + 0x1010], eax
mov dword [ecx + 0x100c], edx
mov ecx, edi
mov edx, dword [ebx + 0x18]
shl edx, cl
mov ecx, dword [ebx + 4]
mov eax, edx
mov ebp, dword [ebx + 0x7c]
sub ecx, edi
shr eax, 1
mov dword [esp + 0x68], eax
mov eax, 1
shl eax, cl
mov dword [esp + 0x60], edx
dec eax
imul edx, esi
mov dword [esp + 0x58], eax
add edx, ebp
mov dword [esp + 0x18], edx
mov edx, dword [ebx + 0xc]
and eax, edx
neg eax
sbb eax, eax
shr edx, cl
neg eax
add eax, edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0x10]
and edx, eax
neg edx
sbb edx, edx
shr eax, cl
neg edx
add edx, eax
mov eax, dword [esp + 0x30]
mov ecx, edx
mov dword [esp + 0x58], edx
shr ecx, 1
and edx, 1
add ecx, edx
mov dword [esp + 0x6c], ecx
lea ecx, [eax + 7]
shr ecx, 3
mov dword [esp + 0x28], ecx
mov ecx, eax
and eax, 1
shr ecx, 1
add eax, 7
add eax, ecx
shr eax, 3
mov dword [esp + 0x50], eax
mov edx, dword [ebx + 0x78]
mov eax, edi
and eax, 1
shr ebp, 1
mov ecx, edx
mov dword [esp + 0x24], edx
shr ecx, 3
mov eax, dword [ebx + eax*4 + 0x40]
mov ebx, dword [esp + 0x14]
mov eax, dword [eax + ebx]
add eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x18]
imul eax, dword [esp + 0x28]
add dword [esp + 0x80], eax
mov eax, dword [esp + 0x68]
imul eax, esi
mov esi, dword [esp + 0x50]
add ebp, eax
lea eax, [edi - 1]
mov edi, dword [ecx + 0x394]
and eax, 1
imul ebp, esi
mov dword [esp + 0x1c], edi
mov eax, dword [ecx + eax*4 + 0x40]
add ebp, dword [eax + ebx]
mov eax, edx
mov ebx, dword [ecx + 0x384]
shr eax, 4
add ebp, eax
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x3c], ebp
lea eax, [esi + ebp]
mov esi, dword [ecx + 0x388]
mov ebp, dword [ecx + 0x38c]
mov dword [esp + 0x48], eax
mov eax, dword [ecx + 0x390]
mov dword [esp + 0x40], eax
mov eax, dword [ecx + 0x398]
mov dword [esp + 0x34], esi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x44], eax
test edx, edx
jne 0x623b05
cmp dword [ecx + 0x7c], edx
jne 0x623b05
cmp dword [esp + 0x64], edx
je 0x623a91
mov eax, dword [ecx + 0x54]
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
sub ecx, dword [ebp + 8]
mov ebp, dword [esp + 0x14]
mov eax, dword [eax + ebp]
mov ebp, dword [esp + 0x20]
cmp dword [eax + ecx*4], edx
mov ecx, dword [esp + 0x10]
je 0x623b05
mov eax, dword [ecx + 0x4c]
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
sub ecx, dword [ebp + 8]
mov ebp, dword [esp + 0x14]
mov eax, dword [eax + ebp]
mov ebp, dword [esp + 0x10]
mov dword [eax + ecx*4], 0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
sub ecx, dword [ebp + 8]
mov ebp, dword [esp + 0x14]
mov eax, dword [eax + 0x48]
mov eax, dword [eax + ebp]
mov ebp, dword [esp + 0x20]
mov dword [eax + ecx*4], 0
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x39c], 0
je 0x623b05
mov eax, dword [ecx + 0x3a0]
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
sub ecx, dword [ebp + 8]
mov ebp, dword [esp + 0x14]
mov eax, dword [eax + ebp]
mov ebp, dword [esp + 0x20]
mov dword [eax + ecx*4], 1
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x7c]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x60]
jae 0x624714
cmp dword [esp + 0x2c], 0
jne 0x62402a
mov eax, dword [esp + 0x18]
lea esp, [esp]
mov edi, dword [esp + 0x1c]
cmp eax, dword [esp + 0x58]
jae 0x624714
test edx, edx
jne 0x623bb2
mov dword [esp + 0x5c], edx
cmp dword [ecx + 0x80], edx
jle 0x623bb2
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
lea ebp, [edi + 0x184]
lea esp, [esp]
mov eax, dword [ebp - 0x100]
cmp eax, dword [edi + 0x7c]
jne 0x623b98
mov eax, dword [edi + 0x48]
mov ecx, dword [edi + 8]
shl ecx, 2
mov edx, dword [eax + esi]
mov eax, dword [ebp]
sub edx, ecx
mov dword [edx], eax
mov eax, dword [edi + 0x4c]
mov ecx, dword [edi + 8]
shl ecx, 2
mov edx, dword [eax + esi]
mov eax, dword [ebp + 0x100]
sub edx, ecx
mov dword [edx], eax
mov edx, dword [esp + 0x5c]
inc edx
add ebp, 4
mov dword [esp + 0x5c], edx
cmp edx, dword [edi + 0x80]
jl 0x623b60
mov esi, dword [esp + 0x34]
mov ecx, edi
mov ebp, dword [esp + 0x20]
mov edx, dword [ecx + 8]
mov eax, dword [ecx + 0x48]
mov dword [esp + 0x4c], edx
lea ecx, [edx*4]
mov edx, dword [esp + 0x14]
mov eax, dword [eax + edx]
sub eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x54]
mov ecx, dword [eax + 0x24]
mov edx, ecx
and edx, 0x40
mov eax, 0
setne al
lea eax, [eax*2 + 3]
sub edi, eax
test cl, 8
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x1c]
je 0x623ca7
cmp dword [ecx + 0x39c], 0
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x4c], eax
je 0x623ca7
mov ecx, dword [esp + 0x38]
neg edx
sbb edx, edx
and edx, 0xb0
add edx, 0xe5
push edx
call fcn.00622b40
mov edx, eax
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0x1014]
cmp ecx, 2
je 0x624714
cmp ecx, 3
je 0x624714
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov ecx, dword [eax + 0x3a0]
mov eax, dword [eax + 8]
shl eax, 2
mov ecx, dword [edi + ecx]
sub ecx, eax
xor eax, eax
cmp dword [ecx], edx
sete al
mov dword [ecx], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov edx, eax
mov dword [esp + 0x4c], eax
neg edx
mov eax, dword [ecx + 0x3a0]
mov eax, dword [edi + eax]
mov edi, dword [esp + 0x1c]
cmp dword [eax + edx*4], 0
je 0x623e46
mov dword [ecx + 0x39c], 0
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x623d4a
mov eax, dword [ecx + 0x7c]
xor ebp, ebp
xor esi, esi
mov dword [esp + 0x20], ebp
xor ebx, ebx
mov dword [esp + 0x34], esi
mov dword [esp + 0x5c], eax
test eax, eax
jne 0x623ced
cmp dword [esp + 0x18], ebx
jbe 0x623d06
mov eax, dword [ecx + 0x54]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x4c]
shl ecx, 2
mov eax, dword [eax + edi]
mov edi, dword [esp + 0x1c]
sub eax, ecx
cmp dword [eax], ebx
jne 0x623d02
mov eax, dword [esp + 0x80]
sub eax, dword [esp + 0x28]
movzx esi, byte [eax]
shl esi, 8
mov dword [esp + 0x34], esi
mov eax, dword [esp + 0x5c]
cmp eax, 1
ja 0x623d31
cmp dword [esp + 0x18], 1
jbe 0x623d4a
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x4c]
shl ecx, 2
mov eax, dword [eax + 0x54]
mov eax, dword [eax + edi]
mov edi, dword [esp + 0x1c]
sub eax, ecx
cmp dword [eax], ebx
jne 0x623d4a
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x80]
add eax, eax
sub ecx, eax
movzx ebp, byte [ecx]
shl ebp, 8
mov dword [esp + 0x20], ebp
mov eax, dword [esp + 0x30]
cmp edx, eax
jae 0x623fe1
mov eax, edx
mov ecx, 1
and eax, 7
sub ecx, dword [esp + 0x28]
mov dword [esp + 0x68], ecx
test eax, eax
jne 0x623e03
mov eax, dword [esp + 0x28]
lea eax, [eax*8 - 8]
cmp edx, eax
jae 0x623e03
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x7c]
test edx, edx
jne 0x623db2
cmp dword [esp + 0x18], edx
jbe 0x623e03
mov eax, dword [ecx + 0x54]
mov edi, dword [esp + 0x14]
mov ecx, dword [ecx + 8]
shl ecx, 2
mov eax, dword [eax + edi]
mov edi, dword [esp + 0x1c]
sub eax, ecx
cmp dword [eax], edx
jne 0x623e03
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x80]
mov eax, dword [esp + 0x68]
movzx eax, byte [eax + edi]
mov edi, dword [esp + 0x1c]
or esi, eax
cmp edx, 1
ja 0x623dea
cmp dword [esp + 0x18], 1
jbe 0x623e03
mov eax, dword [ecx + 0x54]
mov edx, dword [esp + 0x14]
mov ecx, dword [ecx + 8]
shl ecx, 2
mov eax, dword [eax + edx]
sub eax, ecx
cmp dword [eax], 0
jne 0x623e03
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x80]
add eax, eax
sub ecx, eax
movzx eax, byte [ecx + 1]
or ebp, eax
mov dword [esp + 0x20], ebp
mov eax, dword [esp + 0x10]
test byte [eax + 0x24], 0x40
je 0x623f27
mov edx, esi
mov ecx, ebx
and ecx, 0xf
shr edx, 9
cmp dword [esp + 0x54], 0
mov dword [esp + 0x5c], ecx
je 0x623ec9
mov ecx, dword [esp + 0x50]
mov eax, ebx
shr eax, cl
and edx, 0x3e0
mov ecx, dword [esp + 0x5c]
and eax, 0x10
or eax, edx
jmp 0x623ed0
cmp dword [esp + 0x28], 0
jbe 0x623eb5
cmp dword [ecx + 0x7c], 0
jne 0x623e97
cmp dword [esp + 0x64], 0
je 0x623e6a
mov eax, dword [ecx + 0x54]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + ecx]
cmp dword [eax + edx*4], 0
je 0x623e97
push dword [esp + 0x28]
push 0
push dword [esp + 0x88]
call fcn.004b40a0
mov edx, dword [esp + 0x34]
add esp, 0xc
add dword [esp + 0x80], edx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
jmp 0x624008
mov ecx, dword [esp + 0x80]
mov eax, ecx
mov edx, dword [esp + 0x28]
sub eax, edx
push edx
push eax
push ecx
call fcn.004b3b20
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x28]
add dword [esp + 0x80], edx
mov edx, dword [esp + 0x24]
jmp 0x624008
mov eax, edx
and eax, 0x3f0
or ecx, eax
push ecx
mov ecx, dword [esp + 0x3c]
call fcn.00622b40
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx + 0x1014]
cmp ecx, 2
je 0x624714
cmp ecx, 3
je 0x624714
mov edx, dword [esp + 0x24]
add ebx, ebx
mov ecx, dword [esp + 0x30]
inc edx
or ebx, eax
mov dword [esp + 0x24], edx
add esi, esi
mov eax, edx
mov dword [esp + 0x34], esi
and eax, 7
je 0x623fc0
cmp edx, ecx
jb 0x623e11
jmp 0x623fc0
mov edx, esi
mov eax, ebp
mov ecx, ebx
shr edx, 4
and ecx, 3
and eax, 0x1c000
cmp dword [esp + 0x54], 0
mov dword [esp + 0x5c], ecx
je 0x623f61
mov ecx, dword [esp + 0x50]
and edx, 0x3c00
or edx, eax
mov eax, ebx
shr eax, cl
mov ecx, dword [esp + 0x5c]
and eax, 4
shr edx, 7
or edx, eax
jmp 0x623f6c
and edx, 0x3e00
or edx, eax
shr edx, 7
or edx, ecx
mov ecx, dword [esp + 0x38]
push edx
call fcn.00622b40
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx + 0x1014]
cmp ecx, 2
je 0x624714
cmp ecx, 3
je 0x624714
mov edx, dword [esp + 0x24]
add ebx, ebx
mov ecx, dword [esp + 0x30]
inc edx
or ebx, eax
mov dword [esp + 0x24], edx
add esi, esi
add ebp, ebp
mov eax, edx
mov dword [esp + 0x34], esi
mov dword [esp + 0x20], ebp
and eax, 7
je 0x623fc0
cmp edx, ecx
jb 0x623f27
mov edi, dword [esp + 0x80]
mov byte [edi], bl
inc edi
mov dword [esp + 0x80], edi
mov edi, dword [esp + 0x1c]
cmp edx, ecx
jb 0x623d68
mov eax, dword [esp + 0x30]
mov cl, byte [esp + 0x28]
shl cl, 3
sub cl, al
mov eax, dword [esp + 0x80]
shl byte [eax - 1], cl
xor edx, edx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x24], edx
mov dword [ecx + 0x39c], 1
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x60]
inc eax
inc dword [ecx + 0x7c]
cmp dword [ecx + 0x7c], edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
jb 0x623b30
jmp 0x624714
mov dword [esp + 0x5c], eax
mov edi, edi
mov ecx, dword [esp + 0x58]
cmp dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
jae 0x624710
test edx, edx
jne 0x6240d2
mov dword [esp + 0x64], edx
mov dword [esp + 0x54], eax
cmp dword [ecx + 0x80], edx
jle 0x6240d2
mov eax, dword [esp + 0x5c]
mov edi, ecx
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x54], eax
lea ebp, [edi + 0x184]
cmp dword [ebp - 0x100], eax
jne 0x6240ae
mov ecx, dword [edi + 0x48]
mov edx, esi
sub edx, dword [edi + 8]
mov eax, dword [ebp]
mov ecx, dword [ecx + ebx]
mov dword [ecx + edx*4], eax
mov edx, esi
mov ecx, dword [edi + 0x4c]
sub edx, dword [edi + 8]
mov eax, dword [ebp + 0x100]
mov ecx, dword [ecx + ebx]
mov dword [ecx + edx*4], eax
mov eax, dword [edi + 0x7c]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x54], eax
inc edx
add ebp, 4
mov dword [esp + 0x64], edx
cmp edx, dword [edi + 0x80]
jl 0x624076
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x34]
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x48]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
sub ecx, dword [edx + 8]
mov edx, dword [esp + 0x14]
mov eax, dword [eax + edx]
mov edx, dword [esp + 0x10]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x70], eax
add eax, 0xfffffffd
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x68]
shr ecx, 1
dec eax
cmp ecx, eax
jae 0x624117
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x18]
dec ecx
shr eax, 1
cmp eax, ecx
jb 0x62411f
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x48], eax
test byte [edx + 0x24], 0x10
je 0x624189
cmp dword [edx + 0x39c], 0
je 0x624189
mov ecx, dword [esp + 0x38]
push 0xc3f
call fcn.00622b40
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
sub edx, dword [ebp + 8]
mov ecx, dword [ecx + 0x3a0]
mov ebp, dword [esp + 0x14]
mov ecx, dword [ecx + ebp]
mov ebp, dword [esp + 0x20]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x1014]
cmp eax, 2
je 0x624710
cmp eax, 3
je 0x624710
mov eax, dword [esp + 0x10]
mov dword [eax + 0x39c], 0
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x62428a
mov edi, dword [esp + 0x10]
xor ebp, ebp
xor esi, esi
mov dword [esp + 0x44], edx
xor ebx, ebx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x34], esi
mov ecx, dword [edi + 0x7c]
mov dword [esp + 0x4c], ebx
test ecx, ecx
jne 0x6241df
mov eax, dword [esp + 0x18]
test eax, eax
je 0x62423c
mov edx, dword [esp + 0x14]
mov eax, dword [edi + 0x54]
mov ecx, dword [esp + 0x2c]
sub ecx, dword [edi + 8]
mov eax, dword [eax + edx]
mov edx, dword [esp + 0x24]
cmp dword [eax + ecx*4], ebx
mov ecx, dword [edi + 0x7c]
jne 0x624238
mov eax, dword [esp + 0x80]
sub eax, dword [esp + 0x28]
movzx esi, byte [eax]
shl esi, 8
mov dword [esp + 0x34], esi
cmp ecx, 1
ja 0x62421c
mov eax, dword [esp + 0x18]
cmp eax, 1
jbe 0x62423c
mov edx, dword [esp + 0x14]
mov eax, dword [edi + 0x54]
mov ecx, dword [esp + 0x2c]
sub ecx, dword [edi + 8]
mov eax, dword [eax + edx]
mov edx, dword [esp + 0x24]
cmp dword [eax + ecx*4], ebx
jne 0x624235
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x80]
add eax, eax
sub ecx, eax
movzx ebp, byte [ecx]
shl ebp, 8
mov dword [esp + 0x20], ebp
mov ecx, dword [edi + 0x7c]
mov eax, dword [esp + 0x18]
cmp ecx, 1
ja 0x62425c
cmp eax, 1
jbe 0x62426e
mov ecx, dword [esp + 0x2c]
mov eax, dword [edi + 0x54]
sub ecx, dword [edi + 8]
mov edi, dword [esp + 0x14]
mov eax, dword [eax + edi]
cmp dword [eax + ecx*4], ebx
jne 0x62426e
mov eax, dword [esp + 0x3c]
sub eax, dword [esp + 0x50]
movzx eax, byte [eax]
shl eax, 8
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x3c]
movzx edi, byte [eax]
mov eax, dword [esp + 0x48]
shl edi, 8
mov dword [esp + 0x1c], edi
movzx eax, byte [eax]
shl eax, 8
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
cmp edx, eax
jae 0x6246b6
mov eax, dword [esp + 0x3c]
sub eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
inc eax
mov dword [esp + 0x5c], eax
lea ebx, [ebx]
test dl, 0xf
jne 0x624328
mov eax, dword [esp + 0x50]
lea ecx, [eax*8 - 8]
mov eax, edx
shr eax, 1
cmp eax, ecx
jae 0x624321
mov eax, dword [esp + 0x48]
movzx eax, byte [eax + 1]
or dword [esp + 0x40], eax
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax + 1]
or edi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], edi
cmp dword [eax + 0x7c], 1
ja 0x624316
cmp dword [esp + 0x18], 1
jbe 0x624321
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax + 0x54]
sub ecx, dword [ebp + 8]
mov ebp, dword [esp + 0x14]
mov eax, dword [eax + ebp]
mov ebp, dword [esp + 0x20]
cmp dword [eax + ecx*4], 0
jne 0x624321
mov eax, dword [esp + 0x5c]
movzx eax, byte [eax]
or dword [esp + 0x44], eax
mov ecx, dword [esp + 0x80]
mov eax, ecx
mov ecx, dword [esp + 0x28]
sub eax, ecx
inc eax
mov dword [esp + 0x54], eax
jmp 0x624344
mov ecx, dword [esp + 0x28]
test dl, 7
jne 0x6243f0
lea eax, [ecx*8 - 8]
cmp edx, eax
mov eax, dword [esp + 0x10]
jae 0x6243f4
mov ecx, dword [eax + 0x7c]
mov dword [esp + 0x64], ecx
test ecx, ecx
jne 0x624398
cmp dword [esp + 0x18], ecx
jbe 0x6243f4
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax + 0x54]
sub ecx, dword [edi + 8]
mov edi, dword [esp + 0x14]
mov eax, dword [eax + edi]
mov edi, dword [esp + 0x1c]
cmp dword [eax + ecx*4], 0
jne 0x6243f0
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x54]
movzx eax, byte [eax]
or esi, eax
cmp ecx, 1
ja 0x6243d0
cmp dword [esp + 0x18], 1
mov eax, dword [esp + 0x10]
jbe 0x6243f4
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax + 0x54]
sub ecx, dword [edx + 8]
mov edx, dword [esp + 0x14]
mov eax, dword [eax + edx]
mov edx, dword [esp + 0x24]
cmp dword [eax + ecx*4], 0
jne 0x6243f0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x80]
add eax, eax
sub ecx, eax
movzx eax, byte [ecx + 1]
or ebp, eax
mov dword [esp + 0x20], ebp
lea esp, [esp]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
sub ecx, dword [eax + 8]
mov ebp, dword [esp + 0x14]
mov eax, dword [eax + 0x3a0]
mov eax, dword [eax + ebp]
mov ebp, dword [esp + 0x20]
cmp dword [eax + ecx*4], 0
jne 0x624480
mov ecx, dword [esp + 0x44]
mov eax, edi
shr ecx, 3
and eax, 0x1c000
and ecx, 0x3800
or ecx, eax
mov eax, dword [esp + 0x40]
shr ecx, 3
and eax, 0x1c000
or ecx, eax
shr ecx, 8
test ecx, ecx
je 0x624445
cmp ecx, 0x1ff
jne 0x624480
mov eax, dword [esp + 0x30]
and ecx, 1
lea esp, [esp]
add ebx, ebx
inc edx
or ebx, ecx
test dl, 1
je 0x62445e
cmp edx, eax
jb 0x624450
shl esi, 2
shl ebp, 2
mov dword [esp + 0x24], edx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x34], esi
mov dword [esp + 0x20], ebp
jmp 0x624661
mov eax, dword [esp + 0x10]
test byte [eax + 0x24], 4
je 0x624568
mov ecx, edx
and edi, 0x18000
mov edx, dword [esp + 0x44]
and ecx, 1
shr edx, 2
and edx, 0x6000
or edx, edi
mov edi, dword [eax + 0x30]
shr edx, 4
test byte [esp + 0x18], 1
jne 0x624502
test ecx, ecx
mov eax, ebx
mov ecx, esi
jne 0x6244df
and ecx, 0x1c000
and eax, 1
or ecx, edx
shl eax, 4
mov edx, dword [esp + 0x24]
shr ecx, 9
or ecx, eax
mov al, byte [ecx + edi]
movsx eax, al
jmp 0x62456d
and ecx, 0x38000
and eax, 3
or ecx, edx
shl eax, 4
mov edx, dword [esp + 0x24]
shr ecx, 9
or ecx, eax
mov al, byte [ecx + edi + 0x100]
movsx eax, al
jmp 0x62456d
test ecx, ecx
mov eax, ebp
mov ecx, esi
jne 0x624539
and ecx, 0x1c000
and eax, 0x1c000
or ecx, edx
mov edx, dword [esp + 0x24]
shr ecx, 3
or ecx, eax
mov eax, ebx
and eax, 1
shr ecx, 6
shl eax, 4
or ecx, eax
mov al, byte [ecx + edi + 0x300]
movsx eax, al
jmp 0x62456d
and ecx, 0x38000
and eax, 0x38000
or ecx, edx
mov edx, dword [esp + 0x24]
shr ecx, 3
or ecx, eax
mov eax, ebx
and eax, 3
shr ecx, 6
shl eax, 4
or ecx, eax
mov al, byte [ecx + edi + 0xb00]
movsx eax, al
jmp 0x62456d
mov eax, 2
test al, 2
je 0x624631
mov edi, ebp
mov eax, esi
mov ebp, ebx
shr eax, 2
and edi, 0x8000
and ebp, 3
cmp dword [esp + 0x70], 0
je 0x6245ac
mov ecx, dword [esp + 0x74]
lea edx, [ebx*4]
and eax, 0x3000
shr edx, cl
or eax, edi
and edx, 0x10
shr eax, 0xa
or edx, eax
jmp 0x6245b9
mov edx, eax
and edx, 0x7000
or edx, edi
shr edx, 0xa
mov eax, dword [esp + 0x1c]
or edx, ebp
test byte [esp + 0x24], 1
mov ecx, dword [esp + 0x40]
je 0x6245e4
and eax, 0xc000
and ecx, 0xc000
or eax, 0x40000
shr eax, 2
or eax, ecx
shr eax, 6
jmp 0x6245f7
shr eax, 2
and ecx, 0x18000
and eax, 0x6000
or eax, ecx
shr eax, 7
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x38]
and ecx, 1
shl ecx, 0xb
or ecx, edx
or ecx, eax
push ecx
mov ecx, ebp
call fcn.00622b40
mov ecx, dword [ebp + 0x1014]
cmp ecx, 2
je 0x624710
cmp ecx, 3
je 0x624710
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
add ebx, ebx
inc edx
or ebx, eax
mov dword [esp + 0x24], edx
add esi, esi
mov dword [esp + 0x4c], ebx
add ebp, ebp
mov dword [esp + 0x34], esi
mov dword [esp + 0x20], ebp
test dl, 1
je 0x62465d
mov edi, dword [esp + 0x1c]
cmp edx, dword [esp + 0x30]
jb 0x624480
mov edi, dword [esp + 0x1c]
shl dword [esp + 0x40], 1
add edi, edi
shl dword [esp + 0x44], 1
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], edi
test dl, 7
je 0x624680
cmp edx, eax
jb 0x6243f0
mov ecx, dword [esp + 0x80]
inc dword [esp + 0x54]
mov byte [ecx], bl
inc ecx
mov dword [esp + 0x80], ecx
test dl, 0xf
je 0x6246a2
cmp edx, eax
jb 0x624340
inc dword [esp + 0x48]
inc dword [esp + 0x3c]
inc dword [esp + 0x5c]
cmp edx, eax
jb 0x6242b0
mov cl, byte [esp + 0x28]
xor edx, edx
shl cl, 3
sub cl, al
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x80]
shl byte [eax - 1], cl
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x7c]
test al, 1
jne 0x6246ec
mov ebx, dword [esp + 0x50]
sub dword [esp + 0x48], ebx
sub dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x4c]
jmp 0x6246f6
mov dword [ecx + 0x39c], 1
inc dword [esp + 0x18]
inc eax
mov dword [esp + 0x54], eax
mov dword [ecx + 0x7c], eax
mov dword [esp + 0x5c], eax
cmp eax, dword [esp + 0x60]
jb 0x624030
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov dword [ecx + 0x38c], eax
mov eax, dword [esp + 0x40]
mov dword [ecx + 0x390], eax
mov eax, dword [esp + 0x44]
mov dword [ecx + 0x398], eax
mov eax, dword [esp + 0x24]
mov dword [ecx + 0x78], eax
mov eax, dword [esp + 0x38]
mov dword [ecx + 0x394], edi
pop edi
mov dword [ecx + 0x388], esi
pop esi
mov dword [ecx + 0x384], ebx
mov eax, dword [eax + 0x100c]
sub eax, dword [esp + 0x74]
pop ebp
pop ebx
add esp, 0x68
ret 8