Function at 0x5ce650
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, ecx
push esi
push ebx
sub esp, 0xdc
mov esi, dword [ebp + 8]
call fcn.004cb890
mov ebx, eax
call fcn.004cb890
mov dword [esp], 0xd
mov ecx, eax
call fcn.004cba30
mov dword [eax], 0
lea edx, [eax + 0xc]
sub esp, 4
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov byte [eax + 0xc], 0
movzx eax, byte [esi + 0x18]
mov dword [edi], ebx
mov dword [edi + 4], edx
mov dword [ebp - 0x70], edi
and eax, 0x7f
mov dword [ebp - 0x6c], edi
mov byte [ebp - 0x8c], al
jne 0x5ce6c0
cmp dword [esi + 0x1c], 0xffffffff
je 0x5cef47
lea esi, [esi]
mov eax, dword [esi + 0x20]
movzx ebx, byte [esi + 0x44]
mov edx, dword [esi + 0x1c]
mov ecx, eax
mov dword [ebp - 0x90], eax
movzx eax, byte [esi + 0x43]
shl ebx, 3
mov byte [ebp - 0x88], bl
movzx ebx, byte [esi + 0x34]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x48], edx
shr al, 5
or byte [ebp - 0x88], al
add ebx, ebx
movzx eax, byte [esi + 0x33]
mov byte [ebp - 0x7c], bl
shr al, 7
or byte [ebp - 0x7c], al
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x58], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x54], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x50], eax
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x4c], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 0x28]
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x38], eax
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0x34]
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0x38]
mov dword [ebp - 0x2c], eax
mov ebx, dword [esi + 0x3c]
shr eax, 7
and ax, 0x3ff
mov word [ebp - 0xa8], ax
movzx eax, word [esi + 0x3c]
mov dword [ebp - 0x28], ebx
mov ebx, dword [esi + 0x40]
shr ax, 3
and ax, 0x3ff
mov dword [ebp - 0x24], ebx
mov ebx, dword [esi + 0x44]
mov dword [ebp - 0x20], ebx
mov ebx, dword [esi + 0x48]
mov dword [ebp - 0x1c], ebx
movzx ebx, word [esi + 0x24]
mov word [ebp - 0x84], bx
movzx ebx, byte [esi + 0x28]
and word [ebp - 0x84], 0xfff
mov byte [ebp - 0x80], bl
movzx ebx, word [esi + 0x2a]
and byte [ebp - 0x80], 7
shr bx, 4
and ebx, 0x7f
mov byte [ebp - 0xc8], bl
mov ebx, dword [esi + 0x2c]
shr ebx, 0xf
mov ecx, ebx
mov ebx, dword [esi + 0x30]
shr ebx, 0xf
cmp byte [ebp - 0x8c], 0
mov dword [ebp - 0xb8], ebx
movzx ebx, byte [esi + 0x45]
jne 0x5ce7d0
cmp edx, 0xffffffff
je 0x5cf0f7
lea esi, [esi]
mov dword [esp], 0x6a9b5d
mov ecx, edi
call fcn.005f3fb0
movzx eax, word [esi + 0x24]
and ax, 0xfff
sub esp, 4
cmp ax, 0xfff
je 0x5cef20
mov ecx, edi
mov dword [esp], 0x6a9b65
call fcn.005f3fb0
movzx eax, word [esi + 0x24]
lea ecx, [ebp - 0x70]
and eax, 0xfff
sub esp, 4
mov dword [esp], eax
call fcn.00653e30
movzx eax, byte [esi + 0x28]
and eax, 7
sub esp, 4
cmp al, 4
je 0x5ce84c
mov ecx, edi
mov dword [esp], 0x6a9b70
call fcn.005f3fb0
movzx eax, byte [esi + 0x28]
lea ecx, [ebp - 0x70]
and eax, 7
sub esp, 4
mov dword [esp], eax
call fcn.00653e30
sub esp, 4
mov eax, dword [esi + 0x30]
and eax, 0x7f8000
cmp eax, 0x7f8000
je 0x5ce883
mov ecx, edi
mov dword [esp], 0x6a9b7c
call fcn.005f3fb0
mov eax, dword [esi + 0x30]
lea ecx, [ebp - 0x70]
shr eax, 0xf
movzx eax, al
sub esp, 4
mov dword [esp], eax
call fcn.00653e30
sub esp, 4
movzx eax, word [esi + 0x2a]
and ax, 0x7f0
cmp ax, 0x3f0
je 0x5ce8bb
mov ecx, edi
mov dword [esp], 0x6a9b84
call fcn.005f3fb0
movzx eax, word [esi + 0x2a]
lea ecx, [ebp - 0x70]
shr ax, 4
and eax, 0x7f
sub esp, 4
mov dword [esp], eax
call fcn.00653e30
sub esp, 4
mov eax, dword [esi + 0x2c]
and eax, 0x7fff8000
cmp eax, 0x7fff8000
je 0x5ce8f2
mov ecx, edi
mov dword [esp], 0x6a9b8a
call fcn.005f3fb0
mov eax, dword [esi + 0x2c]
lea ecx, [ebp - 0x70]
shr eax, 0xf
movzx eax, ax
sub esp, 4
mov dword [esp], eax
call fcn.00653e30
sub esp, 4
movzx eax, byte [esi + 0x33]
shr al, 7
movzx edx, al
movzx eax, byte [esi + 0x34]
and eax, 0x7f
add eax, eax
or eax, edx
cmp al, 0xff
je 0x5ce93f
mov ecx, edi
mov dword [esp], 0x6a9b94
call fcn.005f3fb0
movzx eax, byte [esi + 0x33]
lea ecx, [ebp - 0x70]
shr al, 7
movzx edx, al
movzx eax, byte [esi + 0x34]
sub esp, 4
and eax, 0x7f
add eax, eax
or eax, edx
mov dword [esp], eax
call fcn.00653e30
sub esp, 4
movzx eax, byte [esi + 0x18]
test al, 7
jne 0x5cfe9f
test al, 0x78
jne 0x5cff5e
cmp dword [esi + 0x1c], 0xffffffff
je 0x5ce97b
mov ecx, edi
mov dword [esp], 0x6a9b9d
call fcn.005f3fb0
mov eax, dword [esi + 0x1c]
lea ecx, [ebp - 0x6c]
sub esp, 4
mov dword [esp], eax
call fcn.00653d00
sub esp, 4
cmp dword [esi + 0x20], 0xffffffff
je 0x5ce9a3
mov ecx, edi
mov dword [esp], 0x6a9ba6
call fcn.005f3fb0
mov eax, dword [esi + 0x20]
lea ecx, [ebp - 0x6c]
sub esp, 4
mov dword [esp], eax
call fcn.00653d00
sub esp, 4
movzx eax, byte [esi + 0x43]
shr al, 5
movzx edx, al
movzx eax, byte [esi + 0x44]
and eax, 0x1f
shl eax, 3
or eax, edx
jne 0x5cff11
movzx eax, word [esi + 0x34]
and ax, 0x780
cmp ax, 0x780
je 0x5cea05
movzx eax, word [esi + 0x3c]
and ax, 0x1ff8
cmp ax, 0x1ff8
je 0x5cea3f
mov ecx, edi
mov dword [esp], 0x6a9d88
call fcn.005f3fb0
movzx eax, word [esi + 0x34]
lea ecx, [ebp - 0x70]
shr ax, 7
and eax, 0xf
sub esp, 4
mov dword [esp], eax
call fcn.00653e30
sub esp, 4
movzx eax, word [esi + 0x3c]
and ax, 0x1ff8
cmp ax, 0x1ff8
je 0x5cea3f
mov ecx, edi
mov dword [esp], 0x6a9bae
call fcn.005f3fb0
movzx eax, word [esi + 0x3c]
lea ecx, [ebp - 0x70]
shr ax, 3
and eax, 0x3ff
sub esp, 4
mov dword [esp], eax
call fcn.00653e30
sub esp, 4
mov eax, dword [esi + 0x38]
and eax, 0x1ff80
cmp eax, 0x1ff80
je 0x5cea78
mov ecx, edi
mov dword [esp], 0x6a9bbb
call fcn.005f3fb0
mov eax, dword [esi + 0x38]
lea ecx, [ebp - 0x70]
shr eax, 7
and eax, 0x3ff
sub esp, 4
mov dword [esp], eax
call fcn.00653e30
sub esp, 4
movzx eax, word [esi + 0x3e]
and ax, 0x1fe0
cmp ax, 0x1fe0
je 0x5ceab0
mov ecx, edi
mov dword [esp], 0x6a9bc8
call fcn.005f3fb0
movzx eax, word [esi + 0x3e]
lea ecx, [ebp - 0x70]
shr ax, 5
movzx eax, al
sub esp, 4
mov dword [esp], eax
call fcn.00653e30
sub esp, 4
movzx eax, byte [esi + 0x3f]
shr al, 5
movzx edx, al
movzx eax, byte [esi + 0x40]
shl eax, 3
or eax, edx
cmp ax, 0x7ff
je 0x5ceafb
mov ecx, edi
mov dword [esp], 0x6a9be1
call fcn.005f3fb0
movzx eax, byte [esi + 0x3f]
lea ecx, [ebp - 0x70]
shr al, 5
movzx edx, al
movzx eax, byte [esi + 0x40]
sub esp, 4
shl eax, 3
or eax, edx
mov dword [esp], eax
call fcn.00653e30
sub esp, 4
cmp byte [esi + 0x45], 0
jne 0x5cfefb
cmp byte [esi + 0x46], 0
jne 0x5cfee5
cmp byte [esi + 0x47], 0
jne 0x5cfe89
cmp dword [esi + 0x48], 0xfffff800
je 0x5ceb44
mov ecx, edi
mov dword [esp], 0x6a9c24
call fcn.005f3fb0
mov eax, dword [esi + 0x48]
lea ecx, [ebp - 0x6c]
sub esp, 4
mov dword [esp], eax
call fcn.00653d00
sub esp, 4
mov dword [esp], 0x6a9c4c
mov ecx, edi
call fcn.005f3fb0
sub esp, 4
movzx eax, byte [esi + 0x14]
test al, 1
jne 0x5cfb30
test al, 2
jne 0x5cfb10
test al, 4
jne 0x5cfaf0
test al, 8
jne 0x5cfad0
test al, 0x10
nop
lea esi, [esi]
jne 0x5cfab0
test al, 0x20
jne 0x5cfa90
test al, 0x40
jne 0x5cf990
test al, al
js 0x5cf9ad
movzx eax, byte [esi + 0x15]
test al, 1
jne 0x5cf9ca
test al, 2
jne 0x5cf9e7
test al, 4
jne 0x5cfa04
test al, 8
lea esi, [esi]
jne 0x5cfa21
test al, 0x10
jne 0x5cfa3e
test al, 0x20
jne 0x5cfa5b
test al, 0x40
jne 0x5cfa78
mov dword [esp], 0x6a9b06
mov ecx, edi
call fcn.005f3fb0
movzx edx, byte [esi + 0x10]
mov eax, 0x6a9ad9
and edx, 0x3f
sub esp, 4
cmp edx, 0x15
ja 0x5cec07
mov eax, dword [edx*4 + 0x6aaf80]
mov ecx, edi
mov dword [esp], eax
call fcn.005f3fb0
mov eax, dword [esi]
mov ecx, esi
sub esp, 4
call dword [eax + 0x6c]
test al, al
je 0x5cf26c
mov eax, dword [esi + 0x4c]
mov eax, dword [eax + 4]
test eax, eax
je 0x5cf26c
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
sub eax, edx
cmp eax, 7
jle 0x5cf26c
xor ebx, ebx
mov dword [ebp - 0x7c], edi
mov dword [ebp + 8], esi
jmp 0x5ced17
mov ecx, dword [eax - 0xc]
mov edx, 0x3ffffffc
sub edx, ecx
cmp edx, 0x19
jbe 0x5d0043
lea esi, [ecx + 0x1a]
cmp esi, dword [eax - 8]
ja 0x5cec76
mov edi, dword [eax - 4]
test edi, edi
jle 0x5cf877
cmp eax, 0x6a9aeb
ja 0x5cf861
add ecx, eax
cmp ecx, 0x6a9aeb
jb 0x5cf861
mov ecx, dword [ebp - 0x7c]
mov edi, 0x6a9aeb
mov dword [esp], esi
sub edi, eax
call fcn.005f4880
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 4]
sub esp, 4
mov ecx, dword [eax - 0xc]
lea edx, [eax + edi]
add eax, ecx
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [edx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x10], ecx
mov ecx, dword [edx + 0x14]
mov dword [eax + 0x14], ecx
movzx edx, word [edx + 0x18]
mov word [eax + 0x18], dx
mov eax, dword [ebp - 0x7c]
add ebx, 1
mov eax, dword [eax + 4]
mov dword [eax - 4], 0
mov dword [eax - 0xc], esi
mov byte [eax + esi], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x4c]
mov eax, dword [eax + 4]
test eax, eax
je 0x5cf266
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
sub eax, edx
sar eax, 3
cmp ebx, eax
jge 0x5cf266
mov edx, dword [edx + ebx*8]
lea edi, [ebx*8]
mov eax, dword [ebp - 0x7c]
test edx, edx
mov eax, dword [eax + 4]
je 0x5cec50
mov edx, dword [eax - 0xc]
cmp edx, 0x3ffffffc
je 0x5d0043
lea esi, [edx + 1]
cmp esi, dword [eax - 8]
ja 0x5ced51
mov ecx, dword [eax - 4]
test ecx, ecx
jle 0x5cf857
cmp eax, 0x6a9b06
ja 0x5cf840
add edx, eax
cmp edx, 0x6a9b06
jb 0x5cf840
mov ecx, dword [ebp - 0x7c]
mov edx, 0x6a9b06
sub edx, eax
mov dword [esp], esi
mov dword [ebp - 0x80], edx
call fcn.005f4880
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x80]
mov eax, dword [eax + 4]
sub esp, 4
lea ecx, [eax + edx]
mov edx, dword [eax - 0xc]
movzx ecx, byte [ecx]
mov byte [eax + edx], cl
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 4]
mov dword [eax - 4], 0
mov dword [eax - 0xc], esi
mov byte [eax + esi], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x4c]
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + edi]
mov dword [esp + 0xc], 0x6a9ab7
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0x4cbd20
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x68]
mov dword [esp], eax
call fcn.004cbd30
mov esi, dword [ebp - 0x68]
mov eax, dword [ebp - 0x6c]
mov dword [esp], esi
mov edi, eax
mov dword [ebp - 0x80], eax
call sub.msvcrt.dll_strlen
test eax, eax
je 0x5cee7f
mov edx, dword [edi + 4]
mov edi, 0x3ffffffc
mov ecx, dword [edx - 0xc]
sub edi, ecx
cmp eax, edi
ja 0x5d0043
lea edi, [eax + ecx]
cmp edi, dword [edx - 8]
ja 0x5cee1f
cmp dword [edx - 4], 0
jle 0x5cee58
cmp esi, edx
jb 0x5cf8e0
add ecx, edx
cmp esi, ecx
ja 0x5cf8e0
mov ecx, dword [ebp - 0x80]
sub esi, edx
mov dword [esp], edi
mov dword [ebp - 0x84], eax
call fcn.005f4880
mov eax, dword [ebp - 0x80]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x84]
sub esp, 4
mov ecx, dword [edx - 0xc]
add esi, edx
add edx, ecx
cmp eax, 1
jne 0x5cf808
movzx eax, byte [esi]
mov byte [edx], al
mov eax, dword [ebp - 0x80]
mov eax, dword [eax + 4]
mov dword [eax - 4], 0
mov dword [eax - 0xc], edi
mov byte [eax + edi], 0
mov esi, dword [ebp - 0x68]
mov eax, 0xffffffff
lock xadd dword [esi - 4], eax
test eax, eax
jle 0x5cf962
mov eax, dword [ebp - 0x7c]
mov ecx, 0x3ffffffc
mov eax, dword [eax + 4]
mov edx, dword [eax - 0xc]
sub ecx, edx
cmp ecx, 0x10
jbe 0x5d0043
lea esi, [edx + 0x11]
cmp esi, dword [eax - 8]
ja 0x5ceebd
mov ecx, dword [eax - 4]
test ecx, ecx
jle 0x5cf836
cmp eax, 0x6a9b08
ja 0x5cf820
add edx, eax
cmp edx, 0x6a9b08
jb 0x5cf820
mov ecx, dword [ebp - 0x7c]
mov edi, 0x6a9b08
mov dword [esp], esi
sub edi, eax
call fcn.005f4880
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 4]
sub esp, 4
mov edx, dword [eax - 0xc]
lea ecx, [eax + edi]
add eax, edx
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
movzx edx, byte [ecx + 0x10]
mov byte [eax + 0x10], dl
jmp 0x5cecdc
movzx eax, byte [esi + 0x28]
and eax, 7
cmp al, 4
jne 0x5ce7f3
mov eax, dword [esi + 0x30]
and eax, 0x7f8000
cmp eax, 0x7f8000
je 0x5ce883
jmp 0x5ce7f3
mov eax, dword [esi + 0x2c]
and eax, 0x7fff8000
cmp eax, 0x7fff8000
jne 0x5ce6c0
movzx eax, word [esi + 0x2a]
and ax, 0x7f0
cmp ax, 0x3f0
jne 0x5ce6c0
cmp dword [esi + 0x20], 0xffffffff
jne 0x5ce6c0
movzx eax, word [esi + 0x24]
and ax, 0xfff
cmp ax, 0xfff
jne 0x5ce6c0
movzx eax, byte [esi + 0x28]
and eax, 7
cmp al, 4
jne 0x5ce6c0
mov eax, dword [esi + 0x30]
and eax, 0x7f8000
cmp eax, 0x7f8000
jne 0x5ce6c0
movzx eax, byte [esi + 0x33]
shr al, 7
movzx edx, al
movzx eax, byte [esi + 0x34]
and eax, 0x7f
add eax, eax
or eax, edx
cmp al, 0xff
mov byte [ebp - 0x7c], al
jne 0x5ce6c0
movzx eax, word [esi + 0x34]
and ax, 0x780
cmp ax, 0x780
jne 0x5ce6c0
mov eax, dword [esi + 0x38]
and eax, 0x1ff80
cmp eax, 0x1ff80
jne 0x5ce6c0
movzx eax, word [esi + 0x3c]
and ax, 0x1ff8
cmp ax, 0x1ff8
jne 0x5ce6c0
movzx eax, byte [esi + 0x43]
shr al, 5
movzx edx, al
movzx eax, byte [esi + 0x44]
and eax, 0x1f
shl eax, 3
or eax, edx
jne 0x5d004f
cmp byte [esi + 0x45], 0
je 0x5ceb55
mov byte [ebp - 0x88], 0
mov eax, dword [esi + 0xc]
mov ebx, dword [esi + 0x2c]
mov edx, dword [esi + 0x30]
mov dword [ebp - 0x58], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x38], ebx
shr ebx, 0xf
mov dword [ebp - 0x34], edx
mov ecx, ebx
shr edx, 0xf
mov dword [ebp - 0x54], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x50], eax
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x4c], eax
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x48], eax
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x44], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 0x28]
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 0x34]
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0x38]
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 0x3c]
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 0x40]
mov dword [ebp - 0x24], eax
mov eax, dword [esi + 0x44]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x48]
mov dword [ebp - 0x1c], eax
movzx eax, word [esi + 0x24]
mov word [ebp - 0x84], ax
movzx eax, byte [esi + 0x28]
and word [ebp - 0x84], 0xfff
movzx ebx, byte [esi + 0x45]
mov dword [ebp - 0xb8], edx
mov byte [ebp - 0x80], al
movzx eax, word [esi + 0x2a]
and byte [ebp - 0x80], 7
mov dword [ebp - 0x90], 0xffffffff
shr ax, 4
and eax, 0x7f
mov byte [ebp - 0xc8], al
mov eax, dword [esi + 0x38]
shr eax, 7
and ax, 0x3ff
mov word [ebp - 0xa8], ax
movzx eax, word [esi + 0x3c]
shr ax, 3
and ax, 0x3ff
mov edx, dword [ebp - 0x38]
movzx ecx, cx
shl ecx, 0xf
and edx, 0x80007fff
or edx, ecx
mov dword [ebp - 0x38], edx
and edx, 0x7fff8000
cmp edx, 0x7fff8000
jne 0x5ce7d0
movzx ecx, word [ebp - 0xc8]
movzx edx, word [ebp - 0x3a]
and ecx, 0x7f
shl ecx, 4
and dx, 0xf80f
or edx, ecx
mov word [ebp - 0x3a], dx
and dx, 0x7f0
cmp dx, 0x3f0
jne 0x5ce7d0
cmp dword [ebp - 0x90], 0xffffffff
jne 0x5ce7d0
movzx edx, word [ebp - 0x40]
and dx, 0xf000
or dx, word [ebp - 0x84]
mov word [ebp - 0x40], dx
and dx, 0xfff
cmp dx, 0xfff
jne 0x5ce7d0
movzx edx, byte [ebp - 0x3c]
and edx, 0xfffffff8
or dl, byte [ebp - 0x80]
mov byte [ebp - 0x3c], dl
and edx, 7
cmp dl, 4
jne 0x5ce7d0
mov edx, dword [ebp - 0x34]
movzx ecx, byte [ebp - 0xb8]
and edx, 0xff807fff
shl ecx, 0xf
or edx, ecx
mov ecx, dword [ebp - 0x7c]
mov dword [ebp - 0x34], edx
shr edx, 0x18
and edx, 0x7f
and ecx, 1
shl ecx, 7
or edx, ecx
movzx ecx, byte [ebp - 0x7c]
mov byte [ebp - 0x31], dl
movzx edx, byte [ebp - 0x30]
shr cl, 1
and edx, 0xffffff80
or edx, ecx
mov byte [ebp - 0x30], dl
mov edx, dword [ebp - 0x34]
and edx, 0x7f8000
cmp edx, 0x7f8000
jne 0x5ce7d0
cmp byte [ebp - 0x7c], 0xff
jne 0x5ce7d0
mov ecx, dword [ebp - 0xa8]
mov edx, dword [ebp - 0x2c]
or word [ebp - 0x30], 0x780
and ecx, 0x3ff
shl ecx, 7
and edx, 0xfffe007f
or edx, ecx
mov dword [ebp - 0x2c], edx
and edx, 0x1ff80
cmp edx, 0x1ff80
jne 0x5ce7d0
and ax, 0x3ff
lea edx, [eax*8]
movzx eax, word [ebp - 0x28]
and ax, 0xe007
or eax, edx
mov word [ebp - 0x28], ax
and ax, 0x1ff8
cmp ax, 0x1ff8
jne 0x5ce7d0
cmp byte [ebp - 0x88], 0
jne 0x5ce7d0
test bl, bl
je 0x5ceb55
jmp 0x5ce7d0
mov edi, dword [ebp - 0x7c]
mov esi, dword [ebp + 8]
test word [esi + 0x12], 0x1c0
jne 0x5cfb90
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x68]
test al, al
je 0x5cf908
mov ecx, edi
mov dword [esp], 0x6a9b06
call fcn.005f3fb0
movzx eax, byte [esi + 5]
sar al, 4
movsx eax, al
sub esp, 4
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x64]
mov dword [esp], eax
mov dword [esp + 0xc], 0x6a9ab7
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0x4cbd20
call fcn.004cbd30
mov eax, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x6c]
mov dword [esp], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x80], ebx
call sub.msvcrt.dll_strlen
test eax, eax
je 0x5cfd82
mov edx, dword [ebx + 4]
mov ebx, 0x3ffffffc
mov ecx, dword [edx - 0xc]
sub ebx, ecx
cmp eax, ebx
ja 0x5d0043
lea ebx, [eax + ecx]
cmp ebx, dword [edx - 8]
ja 0x5cf308
cmp dword [edx - 4], 0
jle 0x5cf350
cmp dword [ebp - 0x7c], edx
jb 0x5cfdc0
add ecx, edx
cmp dword [ebp - 0x7c], ecx
ja 0x5cfdc0
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x80]
mov dword [esp], ebx
sub eax, edx
mov dword [ebp - 0x7c], eax
call fcn.005f4880
mov ecx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x7c]
mov edx, dword [ecx + 4]
sub esp, 4
add eax, edx
mov ecx, dword [edx - 0xc]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x84]
nop
add edx, ecx
cmp eax, 1
jne 0x5cfd90
mov eax, dword [ebp - 0x7c]
movzx eax, byte [eax]
mov byte [edx], al
mov eax, dword [ebp - 0x80]
mov eax, dword [eax + 4]
mov dword [eax - 4], 0
mov dword [eax - 0xc], ebx
mov byte [eax + ebx], 0
mov edx, dword [ebp - 0x64]
mov eax, 0xffffffff
lock xadd dword [edx - 4], eax
lea ebx, [ebp - 0x60]
test eax, eax
mov dword [ebp - 0x84], ebx
jle 0x5cfe20
mov ecx, edi
mov dword [esp], 0x6a9cff
call fcn.005f3fb0
movzx eax, byte [esi + 6]
shl eax, 4
sar al, 4
sub esp, 4
movsx eax, al
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x84]
mov dword [esp + 0xc], 0x6a9ab7
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0x4cbd20
mov dword [esp], eax
call fcn.004cbd30
mov ebx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x6c]
mov dword [esp], ebx
mov dword [ebp - 0x80], eax
call sub.msvcrt.dll_strlen
test eax, eax
mov edx, eax
je 0x5cf49e
mov eax, dword [ebp - 0x80]
mov eax, dword [eax + 4]
mov ecx, dword [eax - 0xc]
mov dword [ebp - 0x7c], ecx
mov ecx, 0x3ffffffc
sub ecx, dword [ebp - 0x7c]
cmp edx, ecx
ja 0x5d0043
mov ecx, dword [ebp - 0x7c]
add ecx, edx
cmp ecx, dword [eax - 8]
mov dword [ebp - 0x88], ecx
ja 0x5cf42b
mov ecx, dword [eax - 4]
test ecx, ecx
jle 0x5cf470
cmp ebx, eax
jb 0x5cfde8
mov ecx, dword [ebp - 0x7c]
add ecx, eax
cmp ebx, ecx
ja 0x5cfde8
sub ebx, eax
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x80]
mov dword [ebp - 0x8c], edx
mov dword [esp], eax
call fcn.005f4880
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x8c]
mov eax, dword [eax + 4]
sub esp, 4
mov ecx, dword [eax - 0xc]
add ebx, eax
mov dword [ebp - 0x7c], ecx
add eax, dword [ebp - 0x7c]
cmp edx, 1
jne 0x5cfda8
movzx edx, byte [ebx]
mov byte [eax], dl
mov eax, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x88]
mov eax, dword [eax + 4]
mov dword [eax - 0xc], ebx
mov dword [eax - 4], 0
mov byte [eax + ebx], 0
mov ebx, dword [ebp - 0x60]
mov eax, 0xffffffff
lock xadd dword [ebx - 4], eax
test eax, eax
jle 0x5cfe33
mov dword [esp], 0x6a9d01
mov ecx, edi
call fcn.005f3fb0
sub esp, 4
mov dword [esp], 0x6a9b06
mov ecx, edi
call fcn.005f3fb0
sub esp, 4
cmp byte [esi + 4], 0xc
je 0x5cfbd0
call fcn.004cb890
movzx edx, byte [esi + 4]
cmp edx, 0xe
mov dword [ebp - 0x64], eax
mov eax, 0x6a9b36
ja 0x5cf4f9
mov eax, dword [edx*4 + 0x6aa6e0]
mov ecx, dword [ebp - 0x84]
lea edx, [ebp - 0x64]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.005f4b30
sub esp, 8
mov eax, dword [ebp - 0x5c]
mov ebx, dword [eax - 0xc]
test ebx, ebx
je 0x5cf57b
mov ecx, dword [edi + 4]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x7c], edx
add edx, ebx
cmp edx, dword [ecx - 8]
mov dword [ebp - 0x80], edx
ja 0x5cf535
mov edx, dword [ecx - 4]
test edx, edx
jle 0x5cf551
mov eax, dword [ebp - 0x80]
mov ecx, edi
mov dword [esp], eax
call fcn.005f4880
mov ecx, dword [edi + 4]
mov eax, dword [ebp - 0x5c]
mov edx, dword [ecx - 0xc]
sub esp, 4
mov dword [ebp - 0x7c], edx
mov edx, dword [ebp - 0x7c]
add edx, ecx
cmp ebx, 1
jne 0x5cf978
movzx eax, byte [eax]
mov byte [edx], al
mov eax, dword [edi + 4]
mov ebx, dword [ebp - 0x80]
mov dword [eax - 4], 0
mov dword [eax - 0xc], ebx
mov byte [eax + ebx], 0
mov eax, dword [ebp - 0x5c]
lock sub dword [eax - 4], 1
test word [esi + 0x10], 0x3fc0
jne 0x5cfb50
mov eax, dword [esi + 0x50]
test eax, eax
je 0x5cf7fc
mov dword [esp], 0x6a9d81
mov ecx, edi
xor ebx, ebx
call fcn.005f3fb0
mov edx, dword [esi + 0x50]
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
sub esp, 4
sub edx, eax
sar edx, 2
imul edx, edx, 0xcccccccd
test edx, edx
je 0x5cf7eb
mov dword [ebp - 0x7c], edi
mov edi, esi
jmp 0x5cf5ef
mov edx, dword [edi + 0x50]
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
sub edx, eax
sar edx, 2
imul edx, edx, 0xcccccccd
add ebx, 1
cmp ebx, edx
jae 0x5cf7e8
lea esi, [ebx + ebx*4]
mov ecx, dword [eax + esi*4]
mov eax, dword [ecx]
call dword [eax + 0xc]
test al, al
jne 0x5cf5d0
mov eax, dword [edi + 0x50]
mov ecx, dword [ebp - 0x84]
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
mov dword [esp], eax
call fcn.005ce650
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax - 0xc]
sub esp, 4
test ecx, ecx
mov dword [ebp - 0x80], ecx
je 0x5cf69e
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x80]
mov edx, dword [edx + 4]
mov ecx, dword [edx - 0xc]
add eax, ecx
cmp eax, dword [edx - 8]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x8c]
ja 0x5cf650
cmp dword [edx - 4], 0
jle 0x5cf670
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x7c]
mov dword [esp], eax
call fcn.005f4880
mov ecx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x5c]
mov edx, dword [ecx + 4]
sub esp, 4
mov ecx, dword [edx - 0xc]
add edx, ecx
cmp dword [ebp - 0x80], 1
jne 0x5cf881
movzx eax, byte [eax]
mov byte [edx], al
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x88]
mov eax, dword [eax + 4]
mov dword [eax - 4], 0
mov dword [eax - 0xc], ecx
mov byte [eax + ecx], 0
mov eax, dword [ebp - 0x5c]
lock sub dword [eax - 4], 1
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 4]
mov edx, dword [eax - 0xc]
cmp edx, 0x3ffffffc
je 0x5d0043
lea ecx, [edx + 1]
cmp ecx, dword [eax - 8]
mov dword [ebp - 0x80], ecx
ja 0x5cf6ce
mov ecx, dword [eax - 4]
test ecx, ecx
jle 0x5cf8d2
cmp eax, 0x6a9b06
ja 0x5cf8b8
add edx, eax
cmp edx, 0x6a9b06
jb 0x5cf8b8
mov edx, 0x6a9b06
mov ecx, dword [ebp - 0x7c]
sub edx, eax
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x88], edx
mov dword [esp], eax
call fcn.005f4880
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x88]
mov eax, dword [eax + 4]
sub esp, 4
lea ecx, [eax + edx]
mov edx, dword [eax - 0xc]
movzx ecx, byte [ecx]
mov byte [eax + edx], cl
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x80]
mov eax, dword [eax + 4]
mov dword [eax - 0xc], ecx
mov dword [eax - 4], 0
mov byte [eax + ecx], 0
mov eax, dword [edi + 0x50]
mov eax, dword [eax + 4]
mov ecx, dword [eax + esi*4]
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x88], eax
mov eax, dword [ecx - 0xc]
test eax, eax
mov esi, eax
mov dword [ebp - 0x80], eax
je 0x5cf7b2
mov eax, dword [ebp - 0x7c]
mov edx, dword [eax + 4]
mov eax, dword [edx - 0xc]
add esi, eax
cmp esi, dword [edx - 8]
ja 0x5cf76d
cmp dword [edx - 4], 0
jle 0x5cf78d
mov ecx, dword [ebp - 0x7c]
mov dword [esp], esi
call fcn.005f4880
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x88]
mov edx, dword [eax + 4]
mov ecx, dword [ecx + 4]
sub esp, 4
mov eax, dword [edx - 0xc]
add edx, eax
cmp dword [ebp - 0x80], 1
jne 0x5cf8a0
movzx eax, byte [ecx]
mov byte [edx], al
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 4]
mov dword [eax - 4], 0
mov dword [eax - 0xc], esi
mov byte [eax + esi], 0
mov edx, dword [edi + 0x50]
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
sub edx, eax
sar edx, 2
imul edx, edx, 0xcccccccd
lea ecx, [edx - 1]
cmp ecx, ebx
jbe 0x5cf5e4
mov ecx, dword [ebp - 0x7c]
mov dword [esp], 0x6a9d85
call fcn.005f3fb0
sub esp, 4
jmp 0x5cf5d0
mov edi, dword [ebp - 0x7c]
mov dword [esp], 0x6a9d83
mov ecx, edi
call fcn.005f3fb0
sub esp, 4
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret 4
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], edx
call sub.msvcrt.dll_memcpy
jmp 0x5cee68
mov edi, dword [ebp - 0x7c]
mov dword [esp], esi
mov ecx, edi
call fcn.005f4880
mov eax, dword [edi + 4]
mov edx, dword [eax - 0xc]
sub esp, 4
mov ecx, 0x6a9b08
jmp 0x5ceef7
mov ecx, dword [ebp - 0x7c]
mov dword [esp], esi
call fcn.005f4880
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 4]
sub esp, 4
mov edx, dword [eax - 0xc]
mov ecx, 0x6a9b06
jmp 0x5ced91
mov edi, dword [ebp - 0x7c]
mov dword [esp], esi
mov ecx, edi
call fcn.005f4880
mov eax, dword [edi + 4]
mov ecx, dword [eax - 0xc]
sub esp, 4
mov edx, 0x6a9aeb
jmp 0x5cecb0
mov ecx, dword [ebp - 0x80]
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 8], ecx
call sub.msvcrt.dll_memcpy
jmp 0x5cf681
mov eax, dword [ebp - 0x80]
mov dword [esp + 4], ecx
mov dword [esp], edx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
jmp 0x5cf79e
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x7c]
mov dword [esp], eax
call fcn.005f4880
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 4]
sub esp, 4
mov edx, dword [eax - 0xc]
mov ecx, 0x6a9b06
jmp 0x5cf717
mov ecx, dword [ebp - 0x80]
mov dword [esp], edi
mov dword [ebp - 0x84], eax
call fcn.005f4880
mov eax, dword [ebp - 0x80]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x84]
sub esp, 4
mov ecx, dword [edx - 0xc]
jmp 0x5cee58
mov eax, dword [esi]
mov ecx, esi
lea ebx, [ebp - 0x60]
call dword [eax + 0x64]
mov dword [ebp - 0x84], ebx
test al, al
je 0x5cf4c1
mov ecx, edi
mov dword [esp], 0x6a9b06
call fcn.005f3fb0
movzx eax, byte [esi + 5]
lea ecx, [ebp - 0x6c]
shl eax, 4
sar al, 4
movsx eax, al
sub esp, 4
mov dword [esp], eax
call fcn.00653d00
mov ecx, edi
sub esp, 4
mov dword [esp], 0x6a9d0c
call fcn.005f3fb0
sub esp, 4
jmp 0x5cf4c1
lea eax, [ebp - 0x60]
lea ecx, [esi - 0xc]
mov dword [esp], eax
call fcn.005ff250
sub esp, 4
jmp 0x5cee91
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.msvcrt.dll_memcpy
jmp 0x5cf564
mov dword [esp], 0x6a9c8f
mov ecx, edi
call fcn.005f3fb0
movzx eax, byte [esi + 0x14]
sub esp, 4
test al, al
jns 0x5ceb9e
mov dword [esp], 0x6a9ca4
mov ecx, edi
call fcn.005f3fb0
movzx eax, byte [esi + 0x15]
sub esp, 4
test al, 1
je 0x5cebaa
mov dword [esp], 0x6a9cab
mov ecx, edi
call fcn.005f3fb0
movzx eax, byte [esi + 0x15]
sub esp, 4
test al, 2
je 0x5cebb2
mov dword [esp], 0x6a9cb3
mov ecx, edi
call fcn.005f3fb0
movzx eax, byte [esi + 0x15]
sub esp, 4
test al, 4
je 0x5cebba
mov dword [esp], 0x6a9cbd
mov ecx, edi
call fcn.005f3fb0
movzx eax, byte [esi + 0x15]
sub esp, 4
test al, 8
je 0x5cebc6
mov dword [esp], 0x6a9cc7
mov ecx, edi
call fcn.005f3fb0
movzx eax, byte [esi + 0x15]
sub esp, 4
test al, 0x10
je 0x5cebce
mov dword [esp], 0x6a9cd1
mov ecx, edi
call fcn.005f3fb0
movzx eax, byte [esi + 0x15]
sub esp, 4
test al, 0x20
je 0x5cebd6
mov dword [esp], 0x6a9cdb
mov ecx, edi
call fcn.005f3fb0
movzx eax, byte [esi + 0x15]
sub esp, 4
test al, 0x40
je 0x5cebde
mov dword [esp], 0x6a9ce6
mov ecx, edi
call fcn.005f3fb0
sub esp, 4
jmp 0x5cebde
mov dword [esp], 0x6a9c80
mov ecx, edi
call fcn.005f3fb0
movzx eax, byte [esi + 0x14]
sub esp, 4
jmp 0x5ceb8e
mov dword [esp], 0x6a9c7a
mov ecx, edi
call fcn.005f3fb0
movzx eax, byte [esi + 0x14]
sub esp, 4
jmp 0x5ceb86
mov dword [esp], 0x6a9c72
mov ecx, edi
call fcn.005f3fb0
movzx eax, byte [esi + 0x14]
sub esp, 4
jmp 0x5ceb79
mov dword [esp], 0x6a9c68
mov ecx, edi
call fcn.005f3fb0
movzx eax, byte [esi + 0x14]
sub esp, 4
jmp 0x5ceb71
mov dword [esp], 0x6a9c59
mov ecx, edi
call fcn.005f3fb0
movzx eax, byte [esi + 0x14]
sub esp, 4
jmp 0x5ceb69
mov dword [esp], 0x6a9c4e
mov ecx, edi
call fcn.005f3fb0
movzx eax, byte [esi + 0x14]
sub esp, 4
jmp 0x5ceb61
mov dword [esp], 0x6a9b06
mov ecx, edi
call fcn.005f3fb0
movzx eax, word [esi + 0x10]
shr ax, 6
movzx edx, al
mov eax, 0x6a9b43
sub esp, 4
cmp edx, 0x4d
ja 0x5cfb7d
mov eax, dword [edx*4 + 0x6aad80]
mov dword [esp], eax
mov ecx, edi
call fcn.005f3fb0
sub esp, 4
jmp 0x5cf58c
mov dword [esp], 0x6a9b06
mov ecx, edi
call fcn.005f3fb0
movzx eax, word [esi + 0x12]
mov edx, 0x6a9b1a
shr ax, 6
and eax, 7
sub esp, 4
cmp eax, 3
ja 0x5cfbbd
mov edx, dword [eax*4 + 0x6aa930]
mov dword [esp], edx
mov ecx, edi
call fcn.005f3fb0
sub esp, 4
jmp 0x5cf278
call fcn.004cb890
mov ebx, eax
call fcn.004cb890
mov dword [esp], 0xd
mov ecx, eax
call fcn.004cba30
mov dword [eax + 4], 0
add eax, 0xc
sub esp, 4
mov dword [eax - 4], 0
mov dword [eax - 0xc], 0
mov byte [eax], 0
mov dword [ebp - 0x5c], eax
movzx eax, byte [esi + 0x60]
mov dword [ebp - 0x60], ebx
test al, 0x20
jne 0x5cff9f
movzx edx, byte [esi + 0x5c]
cmp dl, 4
je 0x5cfe6b
cmp dl, 5
jne 0x5cfc45
mov ecx, dword [ebp - 0x84]
mov dword [esp], 0x6a9d2b
call fcn.005f3fb0
movzx eax, byte [esi + 0x60]
sub esp, 4
test al, 8
je 0x5cfe49
cmp byte [esi + 0x5d], 7
je 0x5d0029
mov ecx, dword [ebp - 0x84]
mov dword [esp], 0x6a9d35
call fcn.005f3fb0
sub esp, 4
movzx eax, byte [esi + 0x60]
test al, 0x40
jne 0x5d000f
cmp byte [esi + 0x5d], 7
ja case.0x5cfc82.0
movzx edx, byte [esi + 0x5d]
jmp dword [edx*4 + 0x6a9d98]
mov ecx, dword [ebp - 0x84]
mov dword [esp], 0x6a9d6b
call fcn.005f3fb0
movzx eax, byte [esi + 0x60]
sub esp, 4
test al, 4
jne 0x5cfff1
test al, 1
jne 0x5cffd3
test al, 2
je 0x5cf511
mov ecx, dword [ebp - 0x84]
mov dword [esp], 0x6a9d7a
call fcn.005f3fb0
sub esp, 4
jmp 0x5cf511
mov ecx, dword [ebp - 0x84]
mov dword [esp], 0x6a9d64
call fcn.005f3fb0
movzx eax, byte [esi + 0x60]
sub esp, 4
jmp case.0x5cfc82.0
mov ecx, dword [ebp - 0x84]
mov dword [esp], 0x6a9d5d
call fcn.005f3fb0
movzx eax, byte [esi + 0x60]
sub esp, 4
jmp case.0x5cfc82.0
mov ecx, dword [ebp - 0x84]
mov dword [esp], 0x6a9d58
call fcn.005f3fb0
movzx eax, byte [esi + 0x60]
sub esp, 4
jmp case.0x5cfc82.0
mov ecx, dword [ebp - 0x84]
mov dword [esp], 0x6a9d55
call fcn.005f3fb0
movzx eax, byte [esi + 0x60]
sub esp, 4
jmp case.0x5cfc82.0
mov ecx, dword [ebp - 0x84]
mov dword [esp], 0x6a9d4f
call fcn.005f3fb0
movzx eax, byte [esi + 0x60]
sub esp, 4
jmp case.0x5cfc82.0
mov ecx, dword [ebp - 0x84]
mov dword [esp], 0x6a9d52
call fcn.005f3fb0
movzx eax, byte [esi + 0x60]
sub esp, 4
jmp case.0x5cfc82.0
mov edx, dword [ebp - 0x7c]
jmp 0x5cf37a
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x7c]
mov dword [esp], edx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
jmp 0x5cf363
mov dword [esp + 8], edx
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x5cf481
mov ecx, dword [ebp - 0x80]
mov dword [esp], ebx
mov dword [ebp - 0x84], eax
call fcn.005f4880
mov eax, dword [ebp - 0x80]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x84]
sub esp, 4
mov ecx, dword [edx - 0xc]
jmp 0x5cf350
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x80]
mov dword [ebp - 0x8c], edx
mov dword [esp], eax
call fcn.005f4880
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x8c]
mov eax, dword [eax + 4]
sub esp, 4
mov ecx, dword [eax - 0xc]
mov dword [ebp - 0x7c], ecx
jmp 0x5cf470
lea ecx, [edx - 0xc]
mov dword [esp], ebx
call fcn.005ff250
sub esp, 4
jmp 0x5cf395
lea eax, [ebp - 0x64]
lea ecx, [ebx - 0xc]
mov dword [esp], eax
call fcn.005ff250
sub esp, 4
jmp 0x5cf4b0
test al, 0x10
je 0x5cffb9
mov ecx, dword [ebp - 0x84]
mov dword [esp], 0x6a9d21
call fcn.005f3fb0
sub esp, 4
jmp 0x5cfc6c
mov ecx, dword [ebp - 0x84]
mov dword [esp], 0x6a9d29
call fcn.005f3fb0
movzx eax, byte [esi + 0x60]
sub esp, 4
jmp 0x5cfc45
mov dword [esp], 0x6a9c0b
mov ecx, edi
call fcn.005f3fb0
sub esp, 4
jmp 0x5ceb19
mov dword [esp], 0x6a9b06
mov ecx, edi
call fcn.005f3fb0
movzx eax, byte [esi + 0x18]
mov edx, 0x6a9aca
and eax, 7
sub esp, 4
cmp al, 1
je 0x5cfecf
cmp al, 2
mov edx, 0x6a9ad4
mov eax, 0x6a9abd
cmove edx, eax
mov dword [esp], edx
mov ecx, edi
call fcn.005f3fb0
movzx eax, byte [esi + 0x18]
sub esp, 4
jmp 0x5ce94b
mov dword [esp], 0x6a9bfe
mov ecx, edi
call fcn.005f3fb0
sub esp, 4
jmp 0x5ceb0f
mov dword [esp], 0x6a9bef
mov ecx, edi
call fcn.005f3fb0
sub esp, 4
jmp 0x5ceb05
mov dword [esp], 0x6a9b06
mov ecx, edi
call fcn.005f3fb0
movzx eax, byte [esi + 0x43]
shr al, 5
movzx edx, al
movzx eax, byte [esi + 0x44]
sub esp, 4
and eax, 0x1f
shl eax, 3
or eax, edx
mov edx, 0x6a9ad4
sub eax, 1
cmp eax, 0x2b
ja 0x5cff4c
mov edx, dword [eax*4 + 0x6aa840]
mov dword [esp], edx
mov ecx, edi
call fcn.005f3fb0
sub esp, 4
jmp 0x5ce9bf
mov dword [esp], 0x6a9b06
mov ecx, edi
call fcn.005f3fb0
movzx eax, byte [esi + 0x18]
shr al, 3
and eax, 0xf
lea edx, [eax - 1]
sub esp, 4
cmp edx, 3
mov eax, 0x6a9ad4
ja 0x5cff8d
mov eax, dword [edx*4 + 0x6aa90c]
mov dword [esp], eax
mov ecx, edi
call fcn.005f3fb0
sub esp, 4
jmp 0x5ce953
mov ecx, dword [ebp - 0x84]
mov dword [esp], 0x6a9d21
call fcn.005f3fb0
sub esp, 4
jmp 0x5cf511
mov ecx, dword [ebp - 0x84]
mov dword [esp], 0x6a9d3b
call fcn.005f3fb0
sub esp, 4
jmp 0x5cfc6c
mov ecx, dword [ebp - 0x84]
mov dword [esp], 0x6a9d74
call fcn.005f3fb0
movzx eax, byte [esi + 0x60]
sub esp, 4
jmp 0x5cfcb2
mov ecx, dword [ebp - 0x84]
mov dword [esp], 0x6a9d71
call fcn.005f3fb0
movzx eax, byte [esi + 0x60]
sub esp, 4
jmp 0x5cfcaa
mov ecx, dword [ebp - 0x84]
mov dword [esp], 0x6a9d43
call fcn.005f3fb0
sub esp, 4
jmp 0x5cf511
mov ecx, dword [ebp - 0x84]
mov dword [esp], 0x6a9d2d
call fcn.005f3fb0
sub esp, 4
jmp 0x5cfc6c
mov dword [esp], 0x6a9aa2
call fcn.0064ba80
mov byte [ebp - 0x88], al
jmp 0x5cf02e