Function at 0x4c5dae
Capabilities:
Check for software breakpoints

Disassembly:
mov edi, edi
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x4f7680
push 0x47bc60
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push ecx
sub esp, 0x304
mov eax, dword [0x4fb070]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x24], eax
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov dword [ebp - 0x28], 0xffffffff
mov byte [ebp - 0x29], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x3c], 0
mov byte [ebp - 0x3d], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax]
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x44]
add edx, 0x14
mov dword [ebp - 0x48], edx
mov eax, dword [ebp - 0x48]
cmp dword [eax], 0
je 0x4c5c87
mov ecx, dword [ebp - 0x48]
mov edx, dword [ecx]
push edx
call dword [ebx + 0x10]
add esp, 4
jmp 0x4c772d
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x4c]
mov eax, dword [edx]
and eax, 0x10020
cmp eax, 0x10020
je 0x4c5ccc
xor ecx, ecx
jne 0x4c5cc3
push 0
push 0
push 0x3a8
push 0x4f6548
push 2
call fcn.0047d2e0
add esp, 0x14
cmp eax, 1
jne 0x4c5cc3
int3
xor eax, eax
jmp 0x4c772d
mov eax, dword [ebp - 0x4c]
add eax, 0xcc
mov dword [ebp - 0x50], eax
mov ecx, dword [ebp - 0x50]
add ecx, 0xa0
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x38], 0
mov byte [ebp - 0x5d], 0
mov dword [ebp - 4], 0
mov byte [ebp - 0x5e], 1
mov byte [ebp - 0x5f], 0
mov byte [ebp - 0x60], 0
mov cl, byte [ebp - 0x60]
mov byte [ebp - 0x61], cl
mov edx, dword [ebp - 0x4c]
mov eax, dword [edx + 0xb8]
mov dword [ebp - 0x68], eax
movzx ecx, byte [ebp - 0x5e]
test ecx, ecx
je 0x4c5f70
mov edx, dword [ebp - 0x68]
mov al, byte [edx]
mov byte [ebp - 0x69], al
mov ecx, dword [ebp - 0x68]
add ecx, 1
mov dword [ebp - 0x68], ecx
movzx edx, byte [ebp - 0x69]
mov dword [ebp - 0x70], edx
mov eax, dword [ebp - 0x70]
sub eax, 0x26
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0xcd
ja case.0x4c5d67.1
mov ecx, dword [ebp - 0x70]
movzx edx, byte [ecx + 0x4c776c]
jmp dword [edx*4 + 0x4c774c]
mov byte [ebp - 0x5f], 1
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
jmp 0x4c5f6b
mov dword [ebp - 0x5c], 1
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
jmp 0x4c5f6b
mov byte [ebp - 0x5f], 1
mov dword [ebp - 0x5c], 1
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
jmp 0x4c5f6b
mov byte [ebp - 0x5d], 1
jmp 0x4c5f6b
mov byte [ebp - 0x60], 1
mov eax, dword [ebp - 0x68]
mov cl, byte [eax]
mov byte [ebp - 0x71], cl
mov edx, dword [ebp - 0x68]
add edx, 1
mov dword [ebp - 0x68], edx
mov eax, dword [ebp - 0x68]
mov cl, byte [eax]
mov byte [ebp - 0x72], cl
mov edx, dword [ebp - 0x68]
add edx, 1
mov dword [ebp - 0x68], edx
movzx eax, byte [ebp - 0x72]
and eax, 3
cmp eax, 1
jne 0x4c5df0
mov dword [ebp - 0x5c], 1
movzx ecx, byte [ebp - 0x72]
and ecx, 3
cmp ecx, 2
jne 0x4c5e00
mov byte [ebp - 0x5f], 1
movzx edx, byte [ebp - 0x72]
and edx, 3
cmp edx, 3
jne 0x4c5e17
mov byte [ebp - 0x5f], 1
mov dword [ebp - 0x5c], 1
movzx eax, byte [ebp - 0x72]
and eax, 4
neg eax
sbb eax, eax
neg eax
mov byte [ebp - 0x29], al
movzx ecx, byte [ebp - 0x72]
sar ecx, 3
and ecx, 0xf
xor ecx, 0xf
mov dword [ebp - 0x78], ecx
movzx edx, byte [ebp - 0x72]
sar edx, 7
mov dword [ebp - 0x7c], edx
movzx eax, byte [ebp - 0x71]
and eax, 0xf
mov dword [ebp - 0x80], eax
mov ecx, dword [ebp - 0x80]
mov dword [ebp - 0x84], ecx
cmp dword [ebp - 0x84], 1
je 0x4c5e71
cmp dword [ebp - 0x84], 2
je 0x4c5e7a
cmp dword [ebp - 0x84], 3
je 0x4c5e83
jmp 0x4c5e8c
mov byte [ebp - 0x85], 0xf
jmp 0x4c5eca
mov byte [ebp - 0x85], 0x38
jmp 0x4c5eca
mov byte [ebp - 0x85], 0x3a
jmp 0x4c5eca
xor edx, edx
jne 0x4c5eae
push 0
push 0
push 0x424
push 0x4f6548
push 2
call fcn.0047d2e0
add esp, 0x14
cmp eax, 1
jne 0x4c5eae
int3
mov dword [ebp - 0x8c], 0
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0x8c]
jmp 0x4c772d
mov ecx, dword [ebp - 0x30]
add ecx, 2
mov dword [ebp - 0x30], ecx
mov byte [ebp - 0x5e], 0
jmp 0x4c5f6b
mov byte [ebp - 0x61], 1
mov edx, dword [ebp - 0x68]
mov al, byte [edx]
mov byte [ebp - 0x71], al
mov ecx, dword [ebp - 0x68]
add ecx, 1
mov dword [ebp - 0x68], ecx
movzx edx, byte [ebp - 0x71]
and edx, 3
cmp edx, 1
jne 0x4c5f04
mov dword [ebp - 0x5c], 1
movzx eax, byte [ebp - 0x71]
and eax, 3
cmp eax, 2
jne 0x4c5f14
mov byte [ebp - 0x5f], 1
movzx ecx, byte [ebp - 0x71]
and ecx, 3
cmp ecx, 3
jne 0x4c5f2b
mov byte [ebp - 0x5f], 1
mov dword [ebp - 0x5c], 1
movzx edx, byte [ebp - 0x71]
and edx, 4
neg edx
sbb edx, edx
neg edx
mov byte [ebp - 0x29], dl
movzx eax, byte [ebp - 0x71]
sar eax, 3
and eax, 0xf
xor eax, 0xf
mov dword [ebp - 0x78], eax
mov byte [ebp - 0x85], 0xf
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
mov byte [ebp - 0x5e], 0
jmp 0x4c5f6b
mov byte [ebp - 0x5d], 1
jmp 0x4c5f6b
mov byte [ebp - 0x5e], 0
jmp 0x4c5d23
mov dword [ebp - 4], 0xfffffffe
jmp 0x4c5fe6
movzx edx, byte [ebp - 0x5d]
test edx, edx
je 0x4c6017
xor eax, eax
jne 0x4c6010
push 0
push 0
push 0x462
push 0x4f6548
push 2
call fcn.0047d2e0
add esp, 0x14
cmp eax, 1
jne 0x4c6010
int3
xor eax, eax
jmp 0x4c772d
mov dword [ebp - 4], 1
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x98], edx
mov eax, dword [ebp - 0x98]
mov ecx, dword [eax]
and ecx, 0xf
mov dword [ebp - 0x9c], ecx
mov edx, dword [ebp - 0x98]
mov eax, dword [edx]
shr eax, 4
and eax, 0xf
mov dword [ebp - 0xa0], eax
movzx ecx, byte [ebp - 0x61]
test ecx, ecx
jne 0x4c605c
movzx edx, byte [ebp - 0x60]
test edx, edx
je 0x4c608a
movzx eax, byte [ebp - 0x85]
cmp eax, 0xf
je 0x4c6082
mov dword [ebp - 0xa0], 3
movzx ecx, byte [ebp - 0x85]
and ecx, 0xf
mov dword [ebp - 0x9c], ecx
mov edx, dword [ebp - 0x78]
mov dword [ebp - 0x3c], edx
jmp 0x4c60ad
mov eax, dword [ebp - 0x98]
mov ecx, dword [eax]
shr ecx, 0xb
and ecx, 7
mov dword [ebp - 0x3c], ecx
movzx edx, byte [ebp - 0x69]
cmp edx, 0xf
je 0x4c60ad
mov byte [ebp - 0x5d], 1
jmp 0x4c662b
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0xa4], eax
mov ecx, dword [ebp - 0xa4]
sub ecx, 2
mov dword [ebp - 0xa4], ecx
cmp dword [ebp - 0xa4], 0xc
ja case.0x4c60db.2
mov edx, dword [ebp - 0xa4]
jmp dword [edx*4 + 0x4c783c]
mov dword [ebp - 0xa8], 0x4f5978
jmp 0x4c6211
mov dword [ebp - 0xa8], 0x4f5a78
jmp 0x4c6211
mov dword [ebp - 0xa8], 0x4f5b78
jmp 0x4c6211
mov dword [ebp - 0xa8], 0x4f5e78
jmp 0x4c6211
mov dword [ebp - 0xa8], 0x4f5c78
movzx eax, byte [ebp - 0x5f]
test eax, eax
je 0x4c6137
mov dword [ebp - 0x5c], 0
jmp 0x4c6211
mov dword [ebp - 0xa8], 0x4f5d78
movzx ecx, byte [ebp - 0x5f]
test ecx, ecx
je 0x4c6155
mov dword [ebp - 0x5c], 0
jmp 0x4c6211
cmp dword [ebp - 0x9c], 0xa
jne 0x4c61fd
mov dword [ebp - 0x38], 1
movzx edx, byte [ebp - 0x61]
movzx eax, byte [ebp - 0x60]
or edx, eax
jne 0x4c618c
mov ecx, dword [ebp - 0x68]
add ecx, 1
mov dword [ebp - 0x68], ecx
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x98], eax
mov ecx, dword [ebp - 0x98]
mov edx, dword [ecx]
and edx, 0xf
mov dword [ebp - 0x9c], edx
mov eax, dword [ebp - 0x98]
mov ecx, dword [eax]
shr ecx, 4
and ecx, 0xf
mov dword [ebp - 0xa0], ecx
mov edx, dword [ebp - 0xa0]
mov dword [ebp - 0xac], edx
cmp dword [ebp - 0xac], 0
je 0x4c61da
cmp dword [ebp - 0xac], 4
je 0x4c61e6
jmp 0x4c61f2
mov dword [ebp - 0xa8], 0x4f5f78
jmp 0x4c61fb
mov dword [ebp - 0xa8], 0x4f5ff8
jmp 0x4c61fb
mov byte [ebp - 0x5d], 1
jmp 0x4c662b
jmp 0x4c6206
mov byte [ebp - 0x5d], 1
jmp 0x4c662b
jmp 0x4c6211
mov byte [ebp - 0x5d], 1
jmp 0x4c662b
mov eax, dword [ebp - 0x98]
mov ecx, dword [eax]
shr ecx, 0xe
and ecx, 3
xor edx, edx
cmp ecx, 3
setne dl
mov byte [ebp - 0xad], dl
movzx eax, byte [ebp - 0xad]
shl eax, 4
or eax, dword [ebp - 0x9c]
mov dword [ebp - 0xb4], eax
cmp dword [ebp - 0xb4], 0x20
jbe 0x4c6255
mov byte [ebp - 0x5d], 1
jmp 0x4c662b
cmp dword [ebp - 0x38], 1
jne 0x4c6386
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp - 0xa8]
lea eax, [edx + ecx*4]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx]
and edx, 0xfff
cmp edx, 0x6b
je 0x4c62ac
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax]
and ecx, 0xfff
cmp ecx, 0x6c
je 0x4c62ac
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx]
and eax, 0xfff
cmp eax, 0x6d
jne 0x4c62b5
mov dword [ebp - 0x5c], 1
jmp 0x4c62ff
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx]
and edx, 0xfff
cmp edx, 0x46
je 0x4c62ed
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax]
and ecx, 0xfff
cmp ecx, 0x47
je 0x4c62ed
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx]
and eax, 0xfff
cmp eax, 0x48
jne 0x4c62f6
mov dword [ebp - 0x5c], 0
jmp 0x4c62ff
mov byte [ebp - 0x5d], 1
jmp 0x4c662b
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx]
and edx, 0xfff
cmp edx, 0x6b
je 0x4c634a
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax]
and ecx, 0xfff
cmp ecx, 0x46
je 0x4c634a
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx]
and eax, 0xfff
cmp eax, 0x6d
je 0x4c634a
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx]
and edx, 0xfff
cmp edx, 0x48
jne 0x4c6350
mov byte [ebp - 0x5f], 0
jmp 0x4c6384
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax]
and ecx, 0xfff
cmp ecx, 0x6c
je 0x4c6375
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx]
and eax, 0xfff
cmp eax, 0x47
jne 0x4c637b
mov byte [ebp - 0x5f], 1
jmp 0x4c6384
mov byte [ebp - 0x5d], 1
jmp 0x4c662b
jmp 0x4c63a1
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x5c]
lea eax, [edx + ecx*2]
mov ecx, dword [ebp - 0xa8]
lea edx, [ecx + eax*4]
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax]
and ecx, 0xfff
jne 0x4c63bc
mov byte [ebp - 0x5d], 1
jmp 0x4c662b
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx]
shr eax, 0xc
and eax, 0x1f
cmp eax, 0x1e
jne 0x4c641a
movzx ecx, byte [ebp - 0x5f]
test ecx, ecx
je 0x4c63f4
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx]
shr eax, 0x11
and eax, 0x1f
lea ecx, [eax*4 + 0x4f60fc]
mov dword [ebp - 0xb8], ecx
jmp 0x4c640f
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx]
shr eax, 0x11
and eax, 0x1f
lea ecx, [eax*4 + 0x4f60f8]
mov dword [ebp - 0xb8], ecx
mov byte [ebp - 0x5f], 0
mov dword [ebp - 0x5c], 2
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx]
and eax, 0xfff
cmp eax, 0x43
je 0x4c6452
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx]
and edx, 0xfff
cmp edx, 0x44
je 0x4c6452
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax]
and ecx, 0xfff
cmp ecx, 0x45
jne 0x4c6456
mov byte [ebp - 0x5f], 0
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx]
and eax, 0xfff
cmp eax, 0x68
je 0x4c648e
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx]
and edx, 0xfff
cmp edx, 0x69
je 0x4c648e
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax]
and ecx, 0xfff
cmp ecx, 0x6a
jne 0x4c6495
mov dword [ebp - 0x5c], 1
cmp dword [ebp - 0x38], 0
jne 0x4c64b6
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx]
and eax, 0xfff
movzx ecx, byte [ebp - 0x5f]
add eax, ecx
mov dword [ebp - 0x168], eax
jmp 0x4c64c9
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx]
and eax, 0xfff
mov dword [ebp - 0x168], eax
movzx ecx, byte [ebp - 0x61]
test ecx, ecx
jne 0x4c64d9
movzx edx, byte [ebp - 0x60]
test edx, edx
je case.0x4c6512.1
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax]
and ecx, 0xfff
mov dword [ebp - 0x194], ecx
mov edx, dword [ebp - 0x194]
sub edx, 0x33
mov dword [ebp - 0x194], edx
cmp dword [ebp - 0x194], 0x38
ja case.0x4c6512.1
mov eax, dword [ebp - 0x194]
movzx ecx, byte [eax + 0x4c7878]
jmp dword [ecx*4 + 0x4c7870]
mov edx, dword [ebp - 0x98]
mov eax, dword [edx]
shr eax, 0xb
and eax, 7
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x30]
add ecx, 3
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x198], 0
movzx edx, byte [ebp - 0x29]
test edx, edx
je 0x4c6597
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax]
and ecx, 0x10040
cmp ecx, 0x10040
jne 0x4c6597
mov edx, dword [ebp - 0x4c]
add edx, 0x2cc
mov dword [ebp - 0x19c], edx
mov eax, dword [ebp - 0x19c]
mov ecx, dword [eax + 0x10]
add ecx, 0x40
mov dword [ebp - 0x1a0], ecx
mov edx, dword [ebp - 0x19c]
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x198], edx
mov dword [ebp - 0x1a4], 2
jmp 0x4c65a1
mov dword [ebp - 0x1a4], 1
movzx eax, byte [ebp - 0xad]
test eax, eax
je 0x4c65f1
mov ecx, dword [ebp - 0x98]
mov dword [ebp - 0x68], ecx
mov edx, dword [ebp - 0x68]
add edx, 1
mov dword [ebp - 0x68], edx
mov eax, dword [ebp - 0x68]
mov cl, byte [eax]
mov byte [ebp - 0x69], cl
mov edx, dword [ebp - 0x68]
add edx, 1
mov dword [ebp - 0x68], edx
mov eax, dword [ebp - 0x68]
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
lea edx, [ebp - 0x1a8]
push edx
movzx eax, byte [ebp - 0x69]
mov ecx, dword [eax*4 + 0x4f6148]
call ecx
add esp, 0xc
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x34]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax]
shr ecx, 0x16
and ecx, 7
cmp ecx, 1
jne 0x4c662b
mov edx, dword [ebp - 0x68]
add edx, dword [ebp - 0x34]
mov dword [ebp - 0x68], edx
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax]
mov dword [ebp - 0x164], ecx
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov dword [ebp - 4], 0xfffffffe
jmp 0x4c66a2
mov dword [ebp - 0x1b4], 0
jmp 0x4c66bd
mov ecx, dword [ebp - 0x1b4]
add ecx, 1
mov dword [ebp - 0x1b4], ecx
mov edx, dword [ebp - 0x1b4]
cmp edx, dword [ebp - 0x1a4]
jge 0x4c7667
cmp dword [ebp - 0x1b4], 0
je 0x4c6776
mov dword [ebp - 0x1b8], 0
jmp 0x4c66f7
mov eax, dword [ebp - 0x1b8]
add eax, 1
mov dword [ebp - 0x1b8], eax
cmp dword [ebp - 0x1b8], 8
jge 0x4c6765
mov ecx, dword [ebp - 0x1b8]
shl ecx, 4
add ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x1b8]
shl edx, 4
lea eax, [ebp + edx - 0x240]
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 ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov edx, dword [ebp - 0x1b8]
shl edx, 4
add edx, dword [ebp - 0x198]
mov eax, dword [ebp - 0x1b8]
shl eax, 4
add eax, dword [ebp - 0x54]
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 edx, dword [edx + 0xc]
mov dword [eax + 0xc], edx
jmp 0x4c66e8
mov eax, dword [ebp - 0x1a8]
add eax, 0x10
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x10], eax
jmp 0x4c6782
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x1a8]
mov dword [edx + 0x10], eax
mov ecx, dword [ebp - 0x3c]
push ecx
mov edx, dword [ebp - 0x4c]
push edx
lea eax, [ebp - 0x150]
push eax
mov ecx, dword [ebp - 0x3c]
push ecx
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx]
shr eax, 0xc
and eax, 0x1f
push eax
movzx ecx, byte [ebp - 0x5f]
push ecx
call fcn.004c7930
add esp, 0x18
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx]
shr eax, 0xc
and eax, 0x1f
cmp eax, 0x1f
jne 0x4c681a
mov ecx, dword [ebp - 0x98]
mov edx, dword [ecx]
shr edx, 8
and edx, 7
push edx
mov eax, dword [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x150]
push ecx
mov edx, dword [ebp - 0x98]
mov eax, dword [edx]
shr eax, 8
and eax, 7
push eax
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx]
shr edx, 0x11
and edx, 0x1f
push edx
movzx eax, byte [ebp - 0x5f]
push eax
call fcn.004c7930
add esp, 0x18
mov ecx, dword [ebp - 0x100]
and ecx, 0xfffffffe
mov dword [ebp - 0x100], ecx
jmp 0x4c685f
mov edx, dword [ebp - 0x98]
mov eax, dword [edx]
shr eax, 8
and eax, 7
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
lea edx, [ebp - 0x120]
push edx
mov eax, dword [ebp - 0x98]
mov ecx, dword [eax]
shr ecx, 8
and ecx, 7
push ecx
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx]
shr eax, 0x11
and eax, 0x1f
push eax
movzx ecx, byte [ebp - 0x5f]
push ecx
call fcn.004c7930
add esp, 0x18
mov edx, dword [ebp - 0x98]
mov eax, dword [edx]
shr eax, 0xb
and eax, 7
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
lea edx, [ebp - 0xf0]
push edx
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx]
shr edx, 0x19
and edx, 0x1f
push edx
movzx eax, byte [ebp - 0x5f]
push eax
call fcn.004c7930
add esp, 0x18
movzx ecx, byte [ebp - 0x5d]
test ecx, ecx
je 0x4c68ca
xor edx, edx
jne 0x4c68c3
push 0
push 0
push 0x620
push 0x4f6548
push 2
call fcn.0047d2e0
add esp, 0x14
cmp eax, 1
jne 0x4c68c3
int3
xor eax, eax
jmp 0x4c772d
mov ecx, dword [ebp - 0x50]
movzx edx, word [ecx]
and edx, 0x300
mov dword [ebp - 0x244], edx
je 0x4c6910
cmp dword [ebp - 0x244], 0x200
je 0x4c6904
cmp dword [ebp - 0x244], 0x300
je 0x4c68f8
jmp 0x4c691a
mov dword [ebp - 0x254], 0
jmp 0x4c691a
mov dword [ebp - 0x254], 1
jmp 0x4c691a
mov dword [ebp - 0x254], 2
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x26c], ecx
mov edx, dword [ebp - 0x26c]
shr edx, 0xd
and edx, 3
and edx, 3
mov dword [ebp - 0x270], edx
cmp dword [ebp - 0x270], 3
ja case.default.0x4c694a
mov eax, dword [ebp - 0x270]
jmp dword [eax*4 + 0x4c78b4]
mov dword [ebp - 0x258], 0
jmp case.default.0x4c694a
mov dword [ebp - 0x258], 1
jmp case.default.0x4c694a
mov dword [ebp - 0x258], 2
jmp case.default.0x4c694a
mov dword [ebp - 0x258], 3
mov ecx, dword [ebp - 0x26c]
and ecx, 0x1f80
shr ecx, 7
mov dword [ebp - 0x268], ecx
mov edx, dword [ebp - 0x26c]
shr edx, 0xf
and edx, 1
mov dword [ebp - 0x260], edx
mov eax, dword [ebp - 0x26c]
shr eax, 6
and eax, 1
mov dword [ebp - 0x25c], eax
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ecx + 0xc0]
mov dword [ebp - 0x24c], edx
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0x250], eax
lea ecx, [ebp - 0x264]
mov dword [ebp - 0x274], ecx
mov edx, dword [ebp - 0x26c]
and edx, 0x3f
mov dword [ebp - 0x190], edx
mov dword [ebp - 0x18c], 0
lea eax, [ebp - 0x18c]
mov dword [ebp - 0x278], eax
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx]
shr edx, 0x1e
and edx, 3
add edx, 1
mov dword [ebp - 0x27c], edx
movzx eax, byte [ebp - 0x5f]
test eax, eax
je 0x4c6a2d
mov dword [ebp - 0x27c], 1
mov ecx, dword [ebp - 0x168]
mov dword [ebp - 0x280], ecx
cmp dword [ebp - 0x280], 0x48
je 0x4c6a4d
cmp dword [ebp - 0x280], 0x6d
je 0x4c6a4d
jmp 0x4c6a81
mov edx, dword [ebp - 0xb8]
push edx
mov eax, dword [ebx + 0x10]
push eax
lea ecx, [ebp - 0x2f0]
push ecx
lea edx, [ebp - 0x268]
push edx
lea eax, [ebp - 0x190]
push eax
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.004c8e50
add esp, 0x18
mov dword [ebp - 0x28], eax
jmp 0x4c7648
mov dword [ebp - 0xb4], 0
jmp 0x4c6a9c
mov edx, dword [ebp - 0xb4]
add edx, 1
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp - 0xb4]
cmp eax, dword [ebp - 0x27c]
jae 0x4c7648
mov dword [ebp - 0x264], 0
mov ecx, dword [ebp - 0x2ec]
and ecx, 0xfffffffe
mov dword [ebp - 0x2ec], ecx
mov edx, dword [ebp - 0x2ec]
and edx, 0xfffffffd
mov dword [ebp - 0x2ec], edx
mov eax, dword [ebp - 0x2ec]
and eax, 0xfffffffb
mov dword [ebp - 0x2ec], eax
mov ecx, dword [ebp - 0x2ec]
and ecx, 0xfffffff7
mov dword [ebp - 0x2ec], ecx
mov edx, dword [ebp - 0x2ec]
and edx, 0xffffffef
mov dword [ebp - 0x2ec], edx
mov eax, dword [ebp - 0x2e8]
and eax, 0xfffffffe
mov dword [ebp - 0x2e8], eax
mov ecx, dword [ebp - 0x2e8]
and ecx, 0xfffffffd
mov dword [ebp - 0x2e8], ecx
mov edx, dword [ebp - 0x2e8]
and edx, 0xfffffffb
mov dword [ebp - 0x2e8], edx
mov eax, dword [ebp - 0x2e8]
and eax, 0xfffffff7
mov dword [ebp - 0x2e8], eax
mov ecx, dword [ebp - 0x2e8]
and ecx, 0xffffffef
mov dword [ebp - 0x2e8], ecx
mov edx, dword [ebp - 0x2e4]
and edx, 0xfffffffe
mov dword [ebp - 0x2e4], edx
mov eax, dword [ebp - 0x2e4]
and eax, 0xfffffffd
mov dword [ebp - 0x2e4], eax
mov ecx, dword [ebp - 0x2e4]
and ecx, 0xfffffffb
mov dword [ebp - 0x2e4], ecx
mov edx, dword [ebp - 0x2e4]
and edx, 0xfffffff7
mov dword [ebp - 0x2e4], edx
mov eax, dword [ebp - 0x2e4]
and eax, 0xffffffef
mov dword [ebp - 0x2e4], eax
mov ecx, dword [ebp - 0x258]
and ecx, 3
mov edx, dword [ebp - 0x2f0]
and edx, 0xfffffffc
or edx, ecx
mov dword [ebp - 0x2f0], edx
mov eax, dword [ebp - 0x254]
and eax, 7
shl eax, 2
mov ecx, dword [ebp - 0x2f0]
and ecx, 0xffffffe3
or ecx, eax
mov dword [ebp - 0x2f0], ecx
mov edx, dword [ebp - 0xb4]
push edx
lea eax, [ebp - 0x2f4]
push eax
mov ecx, dword [ebp - 0x168]
push ecx
call fcn.004c8450
add esp, 0xc
movzx edx, al
test edx, edx
je 0x4c6c18
mov eax, dword [ebp - 0x2f4]
and eax, 0xfff
shl eax, 5
mov ecx, dword [ebp - 0x2f0]
and ecx, 0xfffe001f
or ecx, eax
mov dword [ebp - 0x2f0], ecx
jmp 0x4c6c3a
mov edx, dword [ebp - 0x168]
and edx, 0xfff
shl edx, 5
mov eax, dword [ebp - 0x2f0]
and eax, 0xfffe001f
or eax, edx
mov dword [ebp - 0x2f0], eax
mov ecx, dword [ebp - 0x130]
and ecx, 1
and ecx, 1
mov edx, dword [ebp - 0x2d0]
and edx, 0xfffffffe
or edx, ecx
mov dword [ebp - 0x2d0], edx
mov eax, dword [ebp - 0x130]
shr eax, 1
and eax, 0xf
and eax, 0xf
shl eax, 1
mov ecx, dword [ebp - 0x2d0]
and ecx, 0xffffffe1
or ecx, eax
mov dword [ebp - 0x2d0], ecx
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x2f8], edx
cmp dword [ebp - 0x2f8], 0
je 0x4c6d3a
cmp dword [ebp - 0x2f8], 1
je 0x4c6c9c
jmp 0x4c6e75
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp + eax*8 - 0x140]
mov dword [ebp - 0x2e0], ecx
mov edx, dword [ebp + eax*8 - 0x13c]
mov dword [ebp - 0x2dc], edx
cmp dword [ebp - 0x168], 0x69
je 0x4c6cce
cmp dword [ebp - 0x168], 0x6a
jne 0x4c6d35
cmp dword [ebp - 0xb4], 1
jne 0x4c6d35
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp + eax*8 - 0x118]
mov dword [ebp - 0x2e0], ecx
mov edx, dword [ebp + eax*8 - 0x114]
mov dword [ebp - 0x2dc], edx
mov eax, dword [ebp - 0x100]
and eax, 1
and eax, 1
mov ecx, dword [ebp - 0x2d0]
and ecx, 0xfffffffe
or ecx, eax
mov dword [ebp - 0x2d0], ecx
mov edx, dword [ebp - 0x100]
shr edx, 1
and edx, 0xf
and edx, 0xf
shl edx, 1
mov eax, dword [ebp - 0x2d0]
and eax, 0xffffffe1
or eax, edx
mov dword [ebp - 0x2d0], eax
jmp case.default.0x4c6ea6
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp + ecx*4 - 0x140]
mov dword [ebp - 0x2e0], edx
cmp dword [ebp - 0x168], 0x44
je 0x4c6d63
cmp dword [ebp - 0x168], 0x45
jne 0x4c6e70
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x2fc], eax
cmp dword [ebp - 0x2fc], 1
je 0x4c6d93
cmp dword [ebp - 0x2fc], 2
je 0x4c6dcc
cmp dword [ebp - 0x2fc], 3
je 0x4c6e1f
jmp 0x4c6e70
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp + ecx*4 - 0x13c]
mov dword [ebp - 0x2e0], edx
mov eax, dword [ebp - 0x130]
shr eax, 1
and eax, 0xf
and eax, 0xf
shl eax, 1
mov ecx, dword [ebp - 0x2d0]
and ecx, 0xffffffe1
or ecx, eax
mov dword [ebp - 0x2d0], ecx
jmp 0x4c6e70
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp + edx*4 - 0x118]
mov dword [ebp - 0x2e0], eax
mov ecx, dword [ebp - 0x100]
and ecx, 1
and ecx, 1
mov edx, dword [ebp - 0x2d0]
and edx, 0xfffffffe
or edx, ecx
mov dword [ebp - 0x2d0], edx
mov eax, dword [ebp - 0x100]
shr eax, 1
and eax, 0xf
and eax, 0xf
shl eax, 1
mov ecx, dword [ebp - 0x2d0]
and ecx, 0xffffffe1
or ecx, eax
mov dword [ebp - 0x2d0], ecx
jmp 0x4c6e70
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp + edx*4 - 0x114]
mov dword [ebp - 0x2e0], eax
mov ecx, dword [ebp - 0x100]
and ecx, 1
and ecx, 1
mov edx, dword [ebp - 0x2d0]
and edx, 0xfffffffe
or edx, ecx
mov dword [ebp - 0x2d0], edx
mov eax, dword [ebp - 0x100]
shr eax, 1
and eax, 0xf
and eax, 0xf
shl eax, 1
mov ecx, dword [ebp - 0x2d0]
and ecx, 0xffffffe1
or ecx, eax
mov dword [ebp - 0x2d0], ecx
jmp case.default.0x4c6ea6
mov edx, dword [ebp - 0x168]
mov dword [ebp - 0x300], edx
mov eax, dword [ebp - 0x300]
sub eax, 0x5f
mov dword [ebp - 0x300], eax
cmp dword [ebp - 0x300], 8
ja case.default.0x4c6ea6
mov ecx, dword [ebp - 0x300]
movzx edx, byte [ecx + 0x4c78d0]
jmp dword [edx*4 + 0x4c78c4]
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp + eax*4 - 0x140]
xor edx, edx
mov dword [ebp - 0x2e0], ecx
mov dword [ebp - 0x2dc], edx
jmp case.default.0x4c6ea6
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp + eax*4 - 0x140]
mov dword [ebp - 0x2e0], ecx
jmp case.default.0x4c6ea6
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp + edx*8 - 0x140]
mov dword [ebp - 0x2e0], eax
mov ecx, dword [ebp + edx*8 - 0x13c]
mov dword [ebp - 0x2dc], ecx
mov edx, dword [ebp - 0x100]
and edx, 1
je 0x4c6f4a
mov eax, dword [ebp - 0x100]
and eax, 1
and eax, 1
mov ecx, dword [ebp - 0x2b0]
and ecx, 0xfffffffe
or ecx, eax
mov dword [ebp - 0x2b0], ecx
mov edx, dword [ebp - 0x100]
shr edx, 1
and edx, 0xf
and edx, 0xf
shl edx, 1
mov eax, dword [ebp - 0x2b0]
and eax, 0xffffffe1
or eax, edx
mov dword [ebp - 0x2b0], eax
jmp 0x4c6f59
mov ecx, dword [ebp - 0x2b0]
and ecx, 0xfffffffe
mov dword [ebp - 0x2b0], ecx
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x304], edx
cmp dword [ebp - 0x304], 0
je 0x4c701b
cmp dword [ebp - 0x304], 1
je 0x4c6f7d
jmp 0x4c7173
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp + eax*8 - 0x110]
mov dword [ebp - 0x2c0], ecx
mov edx, dword [ebp + eax*8 - 0x10c]
mov dword [ebp - 0x2bc], edx
cmp dword [ebp - 0x168], 0x69
je 0x4c6faf
cmp dword [ebp - 0x168], 0x6a
jne 0x4c7016
cmp dword [ebp - 0xb4], 0
jne 0x4c7016
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp + eax*8 - 0x138]
mov dword [ebp - 0x2c0], ecx
mov edx, dword [ebp + eax*8 - 0x134]
mov dword [ebp - 0x2bc], edx
mov eax, dword [ebp - 0x130]
and eax, 1
and eax, 1
mov ecx, dword [ebp - 0x2b0]
and ecx, 0xfffffffe
or ecx, eax
mov dword [ebp - 0x2b0], ecx
mov edx, dword [ebp - 0x130]
shr edx, 1
and edx, 0xf
and edx, 0xf
shl edx, 1
mov eax, dword [ebp - 0x2b0]
and eax, 0xffffffe1
or eax, edx
mov dword [ebp - 0x2b0], eax
jmp case.default.0x4c71a4
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp + ecx*4 - 0x110]
mov dword [ebp - 0x2c0], edx
cmp dword [ebp - 0x168], 0x44
je 0x4c7044
cmp dword [ebp - 0x168], 0x45
jne 0x4c716e
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x308], eax
cmp dword [ebp - 0x308], 0
je 0x4c7074
cmp dword [ebp - 0x308], 1
je 0x4c70ca
cmp dword [ebp - 0x308], 2
je 0x4c711d
jmp 0x4c716e
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp + ecx*4 - 0x13c]
mov dword [ebp - 0x2c0], edx
mov eax, dword [ebp - 0x130]
and eax, 1
and eax, 1
mov ecx, dword [ebp - 0x2b0]
and ecx, 0xfffffffe
or ecx, eax
mov dword [ebp - 0x2b0], ecx
mov edx, dword [ebp - 0x130]
shr edx, 1
and edx, 0xf
and edx, 0xf
shl edx, 1
mov eax, dword [ebp - 0x2b0]
and eax, 0xffffffe1
or eax, edx
mov dword [ebp - 0x2b0], eax
jmp 0x4c716e
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp + ecx*4 - 0x138]
mov dword [ebp - 0x2c0], edx
mov eax, dword [ebp - 0x130]
and eax, 1
and eax, 1
mov ecx, dword [ebp - 0x2b0]
and ecx, 0xfffffffe
or ecx, eax
mov dword [ebp - 0x2b0], ecx
mov edx, dword [ebp - 0x130]
shr edx, 1
and edx, 0xf
and edx, 0xf
shl edx, 1
mov eax, dword [ebp - 0x2b0]
and eax, 0xffffffe1
or eax, edx
mov dword [ebp - 0x2b0], eax
jmp 0x4c716e
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp + ecx*4 - 0x114]
mov dword [ebp - 0x2c0], edx
mov eax, dword [ebp - 0x100]
and eax, 1
and eax, 1
mov ecx, dword [ebp - 0x2b0]
and ecx, 0xfffffffe
or ecx, eax
mov dword [ebp - 0x2b0], ecx
mov edx, dword [ebp - 0x100]
shr edx, 1
and edx, 0xf
and edx, 0xf
shl edx, 1
mov eax, dword [ebp - 0x2b0]
and eax, 0xffffffe1
or eax, edx
mov dword [ebp - 0x2b0], eax
jmp case.default.0x4c71a4
mov ecx, dword [ebp - 0x168]
mov dword [ebp - 0x30c], ecx
mov edx, dword [ebp - 0x30c]
sub edx, 0x5f
mov dword [ebp - 0x30c], edx
cmp dword [ebp - 0x30c], 8
ja case.default.0x4c71a4
mov eax, dword [ebp - 0x30c]
movzx ecx, byte [eax + 0x4c78e8]
jmp dword [ecx*4 + 0x4c78dc]
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp + edx*4 - 0x110]
xor ecx, ecx
mov dword [ebp - 0x2c0], eax
mov dword [ebp - 0x2bc], ecx
jmp case.default.0x4c71a4
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp + edx*4 - 0x110]
mov dword [ebp - 0x2c0], eax
jmp case.default.0x4c71a4
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp + ecx*8 - 0x110]
mov dword [ebp - 0x2c0], edx
mov eax, dword [ebp + ecx*8 - 0x10c]
mov dword [ebp - 0x2bc], eax
mov ecx, dword [ebp - 0x290]
and ecx, 0xfffffffe
mov dword [ebp - 0x290], ecx
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x310], edx
cmp dword [ebp - 0x310], 0
je 0x4c724e
cmp dword [ebp - 0x310], 1
je 0x4c7229
jmp 0x4c7266
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp + eax*8 - 0xe0]
mov dword [ebp - 0x2a0], ecx
mov edx, dword [ebp + eax*8 - 0xdc]
mov dword [ebp - 0x29c], edx
jmp case.default.0x4c7297
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp + eax*4 - 0xe0]
mov dword [ebp - 0x2a0], ecx
jmp case.default.0x4c7297
mov edx, dword [ebp - 0x168]
mov dword [ebp - 0x314], edx
mov eax, dword [ebp - 0x314]
sub eax, 0x5f
mov dword [ebp - 0x314], eax
cmp dword [ebp - 0x314], 8
ja case.default.0x4c7297
mov ecx, dword [ebp - 0x314]
movzx edx, byte [ecx + 0x4c7900]
jmp dword [edx*4 + 0x4c78f4]
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp + eax*4 - 0xe0]
xor edx, edx
mov dword [ebp - 0x2a0], ecx
mov dword [ebp - 0x29c], edx
jmp case.default.0x4c7297
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp + eax*4 - 0xe0]
mov dword [ebp - 0x2a0], ecx
jmp case.default.0x4c7297
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp + edx*8 - 0xe0]
mov dword [ebp - 0x2a0], eax
mov ecx, dword [ebp + edx*8 - 0xdc]
mov dword [ebp - 0x29c], ecx
mov edx, dword [ebp - 0xd0]
shr edx, 1
and edx, 0xf
and edx, 0xf
shl edx, 1
mov eax, dword [ebp - 0x290]
and eax, 0xffffffe1
or eax, edx
mov dword [ebp - 0x290], eax
lea ecx, [ebp - 0x2f0]
mov dword [ebp - 0x248], ecx
cmp dword [ebp - 0x5c], 1
je 0x4c7329
cmp dword [ebp - 0x5c], 2
jne 0x4c7347
lea edx, [ebp - 0x268]
push edx
call fcn.004cc900
add esp, 4
mov ecx, dword [ebp - 0xb4]
mov dword [ebp + ecx*4 - 0x188], eax
jmp 0x4c7363
lea edx, [ebp - 0x268]
push edx
call fcn.004c9d50
add esp, 4
mov ecx, dword [ebp - 0xb4]
mov dword [ebp + ecx*4 - 0x188], eax
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x264]
mov dword [ebp + edx*4 - 0x178], eax
mov ecx, dword [ebp - 0xb4]
cmp dword [ebp + ecx*4 - 0x188], 1
jne 0x4c7526
mov edx, dword [ebp - 0x274]
mov eax, dword [edx]
shr eax, 5
and eax, 1
je 0x4c73ad
mov ecx, dword [ebp - 0x278]
mov edx, dword [ecx]
or edx, 0x20
mov eax, dword [ebp - 0x278]
mov dword [eax], edx
mov ecx, dword [ebp - 0x274]
mov edx, dword [ecx]
shr edx, 4
and edx, 1
je 0x4c73d0
mov eax, dword [ebp - 0x278]
mov ecx, dword [eax]
or ecx, 0x10
mov edx, dword [ebp - 0x278]
mov dword [edx], ecx
mov eax, dword [ebp - 0x274]
mov ecx, dword [eax]
shr ecx, 3
and ecx, 1
je 0x4c73f3
mov edx, dword [ebp - 0x278]
mov eax, dword [edx]
or eax, 8
mov ecx, dword [ebp - 0x278]
mov dword [ecx], eax
mov edx, dword [ebp - 0x274]
mov eax, dword [edx]
shr eax, 2
and eax, 1
je 0x4c7416
mov ecx, dword [ebp - 0x278]
mov edx, dword [ecx]
or edx, 4
mov eax, dword [ebp - 0x278]
mov dword [eax], edx
mov ecx, dword [ebp - 0x274]
mov edx, dword [ecx]
shr edx, 1
and edx, 1
je 0x4c7438
mov eax, dword [ebp - 0x278]
mov ecx, dword [eax]
or ecx, 2
mov edx, dword [ebp - 0x278]
mov dword [edx], ecx
mov eax, dword [ebp - 0x274]
mov ecx, dword [eax]
and ecx, 1
je 0x4c7458
mov edx, dword [ebp - 0x278]
mov eax, dword [edx]
or eax, 1
mov ecx, dword [ebp - 0x278]
mov dword [ecx], eax
lea edx, [ebp - 0x2f0]
push edx
call dword [ebx + 0x10]
add esp, 4
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xffffffff
je 0x4c7510
cmp dword [ebp - 0x1b4], 0
je 0x4c7508
mov dword [ebp - 0x1b8], 0
jmp 0x4c749a
mov eax, dword [ebp - 0x1b8]
add eax, 1
mov dword [ebp - 0x1b8], eax
cmp dword [ebp - 0x1b8], 8
jge 0x4c7508
mov ecx, dword [ebp - 0x1b8]
shl ecx, 4
add ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x1b8]
shl edx, 4
add edx, dword [ebp - 0x198]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov ecx, dword [ecx + 0xc]
mov dword [edx + 0xc], ecx
mov edx, dword [ebp - 0x1b8]
shl edx, 4
lea eax, [ebp + edx - 0x240]
mov ecx, dword [ebp - 0x1b8]
shl ecx, 4
add ecx, dword [ebp - 0x54]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
jmp 0x4c748b
mov eax, dword [ebp - 0x28]
jmp 0x4c772d
lea ecx, [ebp - 0x268]
push ecx
mov edx, dword [ebp - 0x168]
push edx
call fcn.004c7df0
add esp, 8
mov eax, dword [ebp - 0x290]
and eax, 1
and eax, 1
mov ecx, dword [ebp - 0xd0]
and ecx, 0xfffffffe
or ecx, eax
mov dword [ebp - 0xd0], ecx
mov edx, dword [ebp - 0x24c]
mov dword [ebp - 0x160], edx
mov eax, dword [ebp - 0xd0]
and eax, 1
je case.default.0x4c75e9
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x318], ecx
cmp dword [ebp - 0x318], 0
je 0x4c75a0
cmp dword [ebp - 0x318], 1
je 0x4c757b
jmp 0x4c75b8
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x2a0]
mov dword [ebp + edx*8 - 0xe0], eax
mov ecx, dword [ebp - 0x29c]
mov dword [ebp + edx*8 - 0xdc], ecx
jmp case.default.0x4c75e9
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x2a0]
mov dword [ebp + edx*4 - 0xe0], eax
jmp case.default.0x4c75e9
mov ecx, dword [ebp - 0x168]
mov dword [ebp - 0x31c], ecx
mov edx, dword [ebp - 0x31c]
sub edx, 0x5f
mov dword [ebp - 0x31c], edx
cmp dword [ebp - 0x31c], 8
ja case.default.0x4c75e9
mov eax, dword [ebp - 0x31c]
movzx ecx, byte [eax + 0x4c7918]
jmp dword [ecx*4 + 0x4c790c]
mov edx, dword [ebp - 0x2a0]
xor eax, eax
mov ecx, dword [ebp - 0xb4]
mov dword [ebp + ecx*8 - 0xe0], edx
mov dword [ebp + ecx*8 - 0xdc], eax
jmp case.default.0x4c75e9
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x2a0]
mov dword [ebp + edx*4 - 0xe0], eax
jmp case.default.0x4c75e9
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x2a0]
mov dword [ebp + ecx*8 - 0xe0], edx
mov eax, dword [ebp - 0x29c]
mov dword [ebp + ecx*8 - 0xdc], eax
jmp 0x4c6a8d
mov ecx, dword [ebp - 0x160]
push ecx
mov edx, dword [ebp - 0x4c]
push edx
lea eax, [ebp - 0xf0]
push eax
call fcn.004c8220
add esp, 0xc
jmp 0x4c66ae
cmp dword [ebp - 0x1a4], 1
jle 0x4c76fd
mov dword [ebp - 0x1b8], 0
jmp 0x4c768f
mov ecx, dword [ebp - 0x1b8]
add ecx, 1
mov dword [ebp - 0x1b8], ecx
cmp dword [ebp - 0x1b8], 8
jge 0x4c76fd
mov edx, dword [ebp - 0x1b8]
shl edx, 4
add edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x1b8]
shl eax, 4
add eax, dword [ebp - 0x198]
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 edx, dword [edx + 0xc]
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 0x1b8]
shl eax, 4
lea ecx, [ebp + eax - 0x240]
mov edx, dword [ebp - 0x1b8]
shl edx, 4
add edx, dword [ebp - 0x54]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov ecx, dword [ecx + 0xc]
mov dword [edx + 0xc], ecx
jmp 0x4c7680
mov edx, dword [ebp - 0x4c]
mov eax, dword [edx + 0xb8]
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp - 0x68]
add ecx, dword [ebp - 0x30]
mov dword [ebp - 0x68], ecx
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x68]
mov dword [edx + 0xb8], eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x1a8]
mov dword [ecx + 0x10], edx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x24]
xor ecx, ebp
call fcn.0047f360
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret