Function at 0x4c324c
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x9c
mov edi, dword [ebp + 8]
mov eax, dword [edi + 4]
mov ebx, dword [edi]
cmp eax, 0xa
je 0x4c1328
mov edx, dword [edi + 0xfa14]
mov ecx, dword [edi + 0xfa18]
mov dword [ebp - 0x40], edx
mov edx, dword [edi + 0xfa1c]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x48], edx
mov ecx, dword [edi + 0xfa20]
mov edx, dword [edi + 0xfa24]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x50], edx
mov ecx, dword [edi + 0xfa28]
mov edx, dword [edi + 0xfa2c]
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x58], edx
mov ecx, dword [edi + 0xfa30]
mov edx, dword [edi + 0xfa34]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x60], edx
mov ecx, dword [edi + 0xfa38]
mov edx, dword [edi + 0xfa3c]
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x68], edx
mov ecx, dword [edi + 0xfa40]
mov edx, dword [edi + 0xfa44]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x70], edx
mov ecx, dword [edi + 0xfa48]
mov edx, dword [edi + 0xfa4c]
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x78], edx
mov ecx, dword [edi + 0xfa50]
mov edx, dword [edi + 0xfa54]
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x80], edx
mov ecx, dword [edi + 0xfa58]
mov edx, dword [edi + 0xfa5c]
mov dword [ebp - 0x84], ecx
mov ecx, dword [edi + 0xfa60]
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x8c], ecx
mov edx, dword [edi + 0xfa64]
mov ecx, dword [edi + 0xfa68]
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x94], ecx
mov edx, dword [edi + 0xfa6c]
mov ecx, dword [edi + 0xfa70]
sub eax, 0xa
mov dword [ebp - 0x98], edx
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x3c], 0
cmp eax, 0x28
ja case.default.0x4c1209
jmp dword [eax*4 + 0x4fb33c]
sub esp, 0xc
push 0xfa1
call fcn.004be4f0
mov dword [esp], 0xfa2
call fcn.004be4f0
add esp, 0x10
lea esi, [esi]
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x48]
mov dword [edi + 0xfa14], eax
mov dword [edi + 0xfa18], edx
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x50]
mov dword [edi + 0xfa1c], ecx
mov dword [edi + 0xfa20], eax
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x58]
mov dword [edi + 0xfa24], edx
mov edx, dword [ebp - 0x5c]
mov dword [edi + 0xfa28], ecx
mov dword [edi + 0xfa2c], eax
mov ecx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x64]
mov dword [edi + 0xfa30], edx
mov edx, dword [ebp - 0x68]
mov dword [edi + 0xfa34], ecx
mov dword [edi + 0xfa38], eax
mov ecx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x70]
mov dword [edi + 0xfa3c], edx
mov edx, dword [ebp - 0x74]
mov dword [edi + 0xfa40], ecx
mov dword [edi + 0xfa44], eax
mov ecx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x7c]
mov dword [edi + 0xfa48], edx
mov edx, dword [ebp - 0x80]
mov dword [edi + 0xfa4c], ecx
mov dword [edi + 0xfa50], eax
mov dword [edi + 0xfa54], edx
mov ecx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x88]
mov dword [edi + 0xfa58], ecx
mov edx, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x90]
mov dword [edi + 0xfa5c], eax
mov dword [edi + 0xfa60], edx
mov dword [edi + 0xfa64], ecx
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x9c]
mov dword [edi + 0xfa68], eax
mov dword [edi + 0xfa6c], edx
mov dword [edi + 0xfa70], ecx
mov eax, dword [ebp - 0x3c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [edi + 0xfa14], 0
mov dword [edi + 0xfa18], 0
mov dword [edi + 0xfa1c], 0
mov dword [edi + 0xfa20], 0
mov dword [edi + 0xfa24], 0
mov dword [edi + 0xfa28], 0
mov dword [edi + 0xfa2c], 0
mov dword [edi + 0xfa30], 0
mov dword [edi + 0xfa34], 0
mov dword [edi + 0xfa38], 0
mov dword [edi + 0xfa3c], 0
mov dword [edi + 0xfa40], 0
mov dword [edi + 0xfa44], 0
mov dword [edi + 0xfa48], 0
mov dword [edi + 0xfa4c], 0
mov dword [edi + 0xfa50], 0
mov dword [edi + 0xfa54], 0
mov dword [edi + 0xfa58], 0
mov dword [edi + 0xfa5c], 0
mov dword [edi + 0xfa60], 0
mov dword [edi + 0xfa64], 0
mov dword [edi + 0xfa68], 0
mov dword [edi + 0xfa6c], 0
mov dword [edi + 0xfa70], 0
jmp 0x4c110d
lea eax, [eax + eax*4]
push edx
push 1
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 7
push eax
mov esi, dword [ebx + 0x2c]
push esi
call dword [ebx + 0x24]
add esp, 0x10
mov dword [ebp - 0x3c], 0xfffffffd
mov dword [edi + 0xc4c], eax
test eax, eax
je 0x4c1230
mov dword [edi + 4], 0xe
lea esi, [esi]
mov esi, dword [edi + 0x20]
cmp esi, 7
jg 0x4c14b0
mov ebx, dword [edi]
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 8]
dec edx
inc eax
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c1460
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
cmp esi, 7
jle 0x4c1468
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov esi, ecx
mov dword [edi + 0x20], ecx
mov byte [ebp - 0x38], al
cmp al, 0x17
je 0x4c2599
mov dword [ebp - 0x3c], 0xfffffffc
cmp al, 0x31
jne 0x4c1230
jmp 0x4c2541
lea ecx, [esi - 1]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov esi, ecx
mov dword [edi + 0x20], ecx
test al, 1
jne 0x4c1b7c
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x48]
shl eax, 7
mov ecx, dword [ebp - 0x40]
add eax, edx
mov dl, byte [ebp - 0x78]
lea eax, [edi + eax*2]
mov byte [eax + ecx + 0xab60], dl
inc ecx
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x40], eax
jl 0x4c2e04
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x50]
inc eax
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], edx
jl 0x4c1c30
mov dword [ebp - 0x48], 0
cmp dword [ebp - 0x48], edx
jge 0x4c160b
lea ecx, [edi + 0xab60]
mov dword [ebp - 0xa4], edi
mov dword [ebp - 0xa8], ecx
mov ebx, edi
xor edx, edx
mov eax, dword [ebp - 0x4c]
mov esi, 0x20
cmp edx, eax
mov dword [ebp - 0x40], 0
jmp 0x4c158d
mov ecx, dword [ebp - 0x40]
xor eax, eax
mov al, byte [ebx + ecx + 0xab60]
cmp eax, edx
jle 0x4c157a
mov edx, eax
cmp eax, esi
jge 0x4c1580
mov esi, eax
mov eax, dword [ebp - 0x40]
inc eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x40], eax
jl 0x4c1568
push eax
mov eax, dword [ebp - 0x4c]
add ebx, 0x102
push eax
mov eax, dword [ebp - 0xa8]
push edx
push esi
push eax
mov eax, dword [ebp - 0xa4]
add eax, 0xe1cc
push eax
mov eax, dword [ebp - 0xa4]
add eax, 0xc99c
push eax
mov eax, dword [ebp - 0xa4]
add eax, 0xb16c
push eax
call fcn.004c8fd0
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0xa8]
add eax, 0x102
mov ecx, dword [ebp - 0x50]
mov dword [edi + edx*4 + 0xf9fc], esi
mov esi, dword [ebp - 0xa4]
inc edx
add esi, 0x408
add esp, 0x20
mov dword [ebp - 0x48], edx
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xa4], esi
cmp edx, ecx
jl 0x4c1553
mov eax, dword [edi + 0xc68]
mov dword [ebp - 0x60], 0
inc eax
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x58], eax
mov eax, dword [edi + 0x24]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 5
mov dword [ebp - 0x68], eax
nop
lea esi, [esi]
mov edx, dword [ebp - 0x40]
mov dword [edi + edx*4 + 0x40], 0
inc edx
mov dword [ebp - 0x40], edx
cmp edx, 0xff
jle 0x4c1640
mov dword [ebp - 0x40], 0x100
mov ecx, 0xfff
mov esi, 0xf
mov ebx, esi
mov edx, 0xf
shl ebx, 4
lea eax, [ebx + edx]
mov byte [ecx + edi + 0xe7c], al
dec ecx
dec edx
jns 0x4c1672
lea eax, [ecx + 1]
mov dword [edi + esi*4 + 0x1e7c], eax
dec esi
jns 0x4c1668
mov dword [ebp - 0x6c], 0
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x3c], 0xfffffffc
cmp dword [ebp - 0x6c], ecx
jge 0x4c1230
xor eax, eax
mov al, byte [edi + 0x1ebc]
mov dword [ebp - 0x60], 0x31
mov dword [ebp - 0x8c], eax
mov edx, dword [edi + eax*4 + 0xf9fc]
shl eax, 7
mov dword [ebp - 0x90], edx
mov edx, dword [ebp - 0x8c]
add eax, edx
lea eax, [edi + eax*8]
lea ecx, [eax + 0xb16c]
lea edx, [eax + 0xe1cc]
mov dword [ebp - 0x94], ecx
add eax, 0xc99c
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0x9c], edx
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x80], ecx
mov dword [edi + 4], 0x24
mov esi, dword [edi + 0x20]
cmp esi, dword [ebp - 0x80]
jge 0x4c1761
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c1711
mov esi, dword [ebx + 0xc]
inc esi
mov dword [ebx + 0xc], esi
mov esi, dword [edi + 0x20]
cmp esi, dword [ebp - 0x80]
jl 0x4c1719
mov edx, esi
mov ebx, dword [ebp - 0x80]
sub edx, ebx
mov eax, dword [edi + 0x1c]
mov cl, dl
mov esi, edx
shr eax, cl
mov dword [ebp - 0x84], eax
mov cl, byte [ebp - 0x80]
mov eax, 1
mov dword [edi + 0x20], edx
shl eax, cl
dec eax
mov ecx, dword [ebp - 0x84]
and ecx, eax
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x3c], 0xfffffffc
cmp dword [ebp - 0x80], 0x14
jg 0x4c1230
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x84]
cmp dword [edx + eax*4], ecx
jge 0x4c17c1
inc eax
mov dword [ebp - 0x80], eax
jmp 0x4c1de5
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x3c], 0xfffffffc
mov ebx, dword [ecx + edx*4]
sub eax, ebx
cmp eax, 0x101
ja 0x4c1230
mov edx, dword [ebp - 0x9c]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp - 0x58]
cmp dword [ebp - 0x64], ecx
je 0x4c3181
cmp dword [ebp - 0x64], 1
ja 0x4c197c
mov dword [ebp - 0x70], 0xffffffff
mov dword [ebp - 0x74], 1
mov esi, dword [ebp - 0x64]
test esi, esi
jne 0x4c331d
mov ebx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x74]
add ebx, eax
mov dword [ebp - 0x70], ebx
mov eax, dword [ebp - 0x74]
add eax, eax
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x60]
test eax, eax
jne 0x4c18ad
mov esi, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x54]
inc esi
mov dword [ebp - 0x3c], 0xfffffffc
mov dword [ebp - 0x5c], esi
cmp dword [ebp - 0x5c], ecx
jge 0x4c1230
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x60], 0x32
xor eax, eax
mov al, byte [edx + edi + 0x1ebc]
mov dword [ebp - 0x8c], eax
mov ecx, dword [edi + eax*4 + 0xf9fc]
mov ebx, dword [ebp - 0x8c]
shl eax, 7
mov dword [ebp - 0x90], ecx
add eax, ebx
lea eax, [edi + eax*8]
lea edx, [eax + 0xb16c]
lea ecx, [eax + 0xe1cc]
add eax, 0xc99c
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x98], eax
mov ecx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x90]
dec ecx
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x60], ecx
mov dword [edi + 4], 0x26
mov esi, dword [edi + 0x20]
cmp esi, dword [ebp - 0x80]
jge 0x4c1914
mov ebx, dword [edi]
mov edx, dword [ebx + 4]
test edx, edx
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c18c4
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
cmp esi, dword [ebp - 0x80]
jl 0x4c18cc
mov edx, esi
mov ecx, dword [ebp - 0x80]
sub edx, ecx
mov ecx, dword [edi + 0x1c]
mov dword [ebp - 0x84], ecx
mov cl, dl
shr dword [ebp - 0x84], cl
mov eax, 1
mov cl, byte [ebp - 0x80]
shl eax, cl
dec eax
mov esi, edx
mov dword [edi + 0x20], edx
mov edx, dword [ebp - 0x84]
and edx, eax
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x3c], 0xfffffffc
cmp dword [ebp - 0x80], 0x14
jg 0x4c1230
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x84]
cmp dword [ecx + edx*4], eax
jge 0x4c307f
inc edx
mov dword [ebp - 0x80], edx
jmp 0x4c26f9
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x3c], 0xfffffffc
cmp dword [ebp - 0x6c], eax
jge 0x4c1230
mov ebx, dword [ebp - 0x64]
dec ebx
cmp ebx, 0xf
ja 0x4c3349
mov esi, dword [edi + 0x1e7c]
cmp ebx, 3
lea ecx, [esi + edi]
lea eax, [ecx + ebx]
mov dl, byte [eax + 0xe7c]
mov byte [ebp - 0x38], dl
jbe 0x4c19dd
lea edx, [eax + 0xe79]
mov al, byte [edx + 2]
sub ebx, 4
mov byte [edx + 3], al
mov al, byte [edx + 1]
mov byte [edx + 2], al
mov al, byte [edx]
mov byte [edx + 1], al
mov al, byte [edx - 1]
mov byte [edx], al
sub edx, 4
cmp ebx, 3
ja 0x4c19bc
test ebx, ebx
je 0x4c19f4
lea edx, [ebx + ecx]
mov al, byte [edx + 0xe7b]
mov byte [edx + 0xe7c], al
dec edx
dec ebx
jne 0x4c19e4
mov cl, byte [ebp - 0x38]
mov byte [esi + edi + 0xe7c], cl
xor eax, eax
xor edx, edx
mov al, byte [ebp - 0x38]
mov al, byte [eax + edi + 0xd7c]
mov dl, al
mov ebx, dword [edi + edx*4 + 0x40]
inc ebx
mov dword [edi + edx*4 + 0x40], ebx
cmp byte [edi + 0x28], 0
je 0x4c3338
mov edx, dword [edi + 0xc50]
mov ecx, dword [ebp - 0x6c]
and eax, 0xff
mov word [edx + ecx*2], ax
mov eax, dword [ebp - 0x6c]
inc eax
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x60]
test eax, eax
jne 0x4c1aae
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x54]
inc eax
mov dword [ebp - 0x3c], 0xfffffffc
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x5c], edx
jge 0x4c1230
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x60], 0x32
xor ecx, ecx
mov cl, byte [eax + edi + 0x1ebc]
mov eax, ecx
mov dword [ebp - 0x8c], ecx
shl eax, 7
mov edx, dword [edi + ecx*4 + 0xf9fc]
add eax, ecx
mov dword [ebp - 0x90], edx
lea eax, [edi + eax*8]
lea ecx, [eax + 0xb16c]
lea edx, [eax + 0xe1cc]
add eax, 0xc99c
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x9c], edx
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x90]
dec eax
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x60], eax
mov dword [edi + 4], 0x28
mov esi, dword [edi + 0x20]
cmp esi, dword [ebp - 0x80]
jge 0x4c1b15
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c1ac5
mov esi, dword [ebx + 0xc]
inc esi
mov dword [ebx + 0xc], esi
mov esi, dword [edi + 0x20]
cmp esi, dword [ebp - 0x80]
jl 0x4c1acd
mov edx, esi
mov ecx, dword [ebp - 0x80]
sub edx, ecx
mov eax, dword [edi + 0x1c]
mov cl, dl
mov esi, edx
shr eax, cl
mov dword [ebp - 0x84], eax
mov cl, byte [ebp - 0x80]
mov eax, 1
mov dword [edi + 0x20], edx
shl eax, cl
dec eax
mov edx, dword [ebp - 0x84]
and edx, eax
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x3c], 0xfffffffc
cmp dword [ebp - 0x80], 0x14
jg 0x4c1230
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x84]
cmp dword [edx + eax*4], ecx
jge 0x4c17c1
inc eax
mov dword [ebp - 0x80], eax
jmp 0x4c25f1
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x23
test esi, esi
jg 0x4c2de8
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c1bcb
mov esi, dword [ebx + 0xc]
inc esi
mov dword [ebx + 0xc], esi
mov esi, dword [edi + 0x20]
jmp 0x4c1b83
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x22
lea esi, [esi]
test esi, esi
jg 0x4c14dc
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c1c28
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c1be0
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x21
cmp esi, 4
jg 0x4c2f61
mov ebx, dword [edi]
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 8]
dec edx
inc eax
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c1c80
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c1c37
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x20
nop
test esi, esi
jg 0x4c2940
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c1cd8
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c1c90
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x1f
cmp esi, 0xe
jg 0x4c2bd5
mov ebx, dword [edi]
mov edx, dword [ebx + 4]
test edx, edx
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c1d30
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c1ce7
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0xd
nop
cmp esi, 7
jg 0x4c2ce3
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 8]
dec esi
inc eax
mov dword [ebx], ecx
mov dword [ebx + 4], esi
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c1d87
mov ecx, dword [ebx + 0xc]
inc ecx
mov dword [ebx + 0xc], ecx
mov esi, dword [edi + 0x20]
jmp 0x4c1d40
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0xc
cmp esi, 7
jg 0x4c2dc7
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c1ddd
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c1d96
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x25
lea esi, [esi]
test esi, esi
jg 0x4c2ec2
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c1e38
mov esi, dword [ebx + 0xc]
inc esi
mov dword [ebx + 0xc], esi
mov esi, dword [edi + 0x20]
jmp 0x4c1df0
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x1e
cmp esi, 2
jg 0x4c2fa1
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 8]
dec esi
inc eax
mov dword [ebx], ecx
mov dword [ebx + 4], esi
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c1e90
mov ecx, dword [ebx + 0xc]
inc ecx
mov dword [ebx + 0xc], ecx
mov esi, dword [edi + 0x20]
jmp 0x4c1e47
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x1d
nop
test esi, esi
jg 0x4c2a38
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c1ee8
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c1ea0
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x1c
test esi, esi
jg 0x4c28ce
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 8]
mov dword [ebx], ecx
mov ecx, dword [ebx + 4]
inc eax
dec ecx
mov dword [ebx + 8], eax
mov dword [ebx + 4], ecx
test eax, eax
jne 0x4c1f3f
mov edx, dword [ebx + 0xc]
inc edx
mov dword [ebx + 0xc], edx
mov esi, dword [edi + 0x20]
jmp 0x4c1ef7
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x1b
mov esi, esi
cmp esi, 7
jg 0x4c2974
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c1f99
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c1f50
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x1a
cmp esi, 7
jg 0x4c29cf
mov ebx, dword [edi]
mov edx, dword [ebx + 4]
test edx, edx
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c1ff1
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c1fa8
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x19
cmp esi, 7
jg 0x4c29f4
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 8]
dec esi
inc eax
mov dword [ebx], ecx
mov dword [ebx + 4], esi
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c2049
mov ecx, dword [ebx + 0xc]
inc ecx
mov dword [ebx + 0xc], ecx
mov esi, dword [edi + 0x20]
jmp 0x4c2000
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x18
test esi, esi
jg 0x4c2a19
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c20a0
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c2058
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x17
nop
cmp esi, 7
jg 0x4c2ac7
mov ebx, dword [edi]
mov edx, dword [ebx + 4]
test edx, edx
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c20f9
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c20b0
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x2c
cmp esi, 7
jg 0x4c2e3e
mov ebx, dword [edi]
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 8]
dec edx
inc eax
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c2151
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c2108
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x2b
cmp esi, 7
jg 0x4c2e5f
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c21a9
mov esi, dword [ebx + 0xc]
inc esi
mov dword [ebx + 0xc], esi
mov esi, dword [edi + 0x20]
jmp 0x4c2160
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0xb
cmp esi, 7
jg 0x4c2ea1
mov edx, dword [ebx + 4]
test edx, edx
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c21ff
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c21b8
mov dword [edi + 4], 0xa
mov esi, dword [edi + 0x20]
cmp esi, 7
jg 0x4c2259
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 8]
dec esi
inc eax
mov dword [ebx], ecx
mov dword [ebx + 4], esi
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c220b
mov ecx, dword [ebx + 0xc]
inc ecx
mov dword [ebx + 0xc], ecx
mov esi, dword [edi + 0x20]
cmp esi, 7
jle 0x4c2213
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov esi, ecx
mov dword [edi + 0x20], ecx
mov dword [ebp - 0x3c], 0xfffffffb
cmp al, 0x42
jne 0x4c1230
jmp 0x4c21b1
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x32
cmp esi, 7
jg 0x4c2af2
mov ebx, dword [edi]
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 8]
dec edx
inc eax
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c22cd
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c2284
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x16
lea esi, [esi]
cmp esi, 7
jg 0x4c2b29
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 8]
dec esi
inc eax
mov dword [ebx], ecx
mov dword [ebx + 4], esi
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c2329
mov ecx, dword [ebx + 0xc]
inc ecx
mov dword [ebx + 0xc], ecx
mov esi, dword [edi + 0x20]
jmp 0x4c22e0
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x15
cmp esi, 7
jg 0x4c2b7f
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c2381
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c2338
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x14
cmp esi, 7
jg 0x4c2c76
mov ebx, dword [edi]
mov edx, dword [ebx + 4]
test edx, edx
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c23d9
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c2390
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x13
cmp esi, 7
jg 0x4c2c3a
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c2431
mov esi, dword [ebx + 0xc]
inc esi
mov dword [ebx + 0xc], esi
mov esi, dword [edi + 0x20]
jmp 0x4c23e8
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x12
cmp esi, 7
jg 0x4c2cc2
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c2489
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c2440
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x11
cmp esi, 7
jg 0x4c2ca1
mov ebx, dword [edi]
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 8]
dec edx
inc eax
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c24e1
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c2498
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x10
cmp esi, 7
jg 0x4c2e1d
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c2539
mov esi, dword [ebx + 0xc]
inc esi
mov dword [ebx + 0xc], esi
mov esi, dword [edi + 0x20]
jmp 0x4c24f0
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0xf
cmp esi, 7
jg 0x4c2e80
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c2591
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c2548
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x2a
cmp esi, 7
jg 0x4c2f80
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c25e9
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c25a0
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x29
test esi, esi
jg 0x4c2ef9
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c2640
mov esi, dword [ebx + 0xc]
inc esi
mov dword [ebx + 0xc], esi
mov esi, dword [edi + 0x20]
jmp 0x4c25f8
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x2e
nop
cmp esi, 7
jg 0x4c2d9c
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c2699
mov esi, dword [ebx + 0xc]
inc esi
mov dword [ebx + 0xc], esi
mov esi, dword [edi + 0x20]
jmp 0x4c2650
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x2d
cmp esi, 7
jg 0x4c2d7b
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c26f1
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c26a8
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x27
test esi, esi
jg 0x4c2f2a
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c2748
mov esi, dword [ebx + 0xc]
inc esi
mov dword [ebx + 0xc], esi
mov esi, dword [edi + 0x20]
jmp 0x4c2700
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x30
cmp esi, 7
jg 0x4c2baa
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c27a0
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c2757
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x2f
nop
cmp esi, 7
jg 0x4c2c0f
mov ebx, dword [edi]
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 8]
dec edx
inc eax
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c27f9
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebx + 0xc], eax
mov esi, dword [edi + 0x20]
jmp 0x4c27b0
mov esi, dword [edi + 0x20]
mov dword [edi + 4], 0x31
cmp esi, 7
jg 0x4c2b54
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4c28c2
mov ecx, dword [ebx]
mov eax, dword [edi + 0x1c]
xor edx, edx
add esi, 8
shl eax, 8
mov dl, byte [ecx]
or eax, edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x1c], eax
inc ecx
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
dec eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 8], eax
test eax, eax
jne 0x4c2851
mov esi, dword [ebx + 0xc]
inc esi
mov dword [ebx + 0xc], esi
mov esi, dword [edi + 0x20]
jmp 0x4c2808
mov ebx, dword [edi + 0xc4c]
mov eax, dword [edi + 0x34]
mov eax, dword [ebx + eax*4]
mov dword [edi + 0x440], 0
shr eax, 8
mov dword [edi + 0x38], eax
cmp byte [edi + 0x10], 0
je 0x4c346f
mov dword [edi + 0x14], 0
mov dword [edi + 0x18], 0
mov eax, dword [ebx + eax*4]
xor edx, edx
mov dl, al
mov dword [edi + 0x440], 1
shr eax, 8
mov dword [edi + 0x3c], edx
mov dword [edi + 0x38], eax
mov eax, dword [0x4d2040]
mov dword [edi + 0x18], 1
dec eax
mov dword [edi + 0x14], eax
dec eax
sete al
and eax, 0xff
xor eax, edx
mov dword [edi + 0x3c], eax
mov dword [ebp - 0x3c], 0
jmp 0x4c1230
lea ecx, [esi - 1]
mov eax, dword [edi + 0x1c]
shr eax, cl
test al, 1
mov eax, dword [ebp - 0x40]
mov esi, ecx
mov dword [edi + 0x20], ecx
setne byte [eax + edi + 0xd6c]
inc eax
mov dword [ebp - 0x40], eax
cmp eax, 0xf
jle 0x4c1ef0
mov dword [ebp - 0x40], 0
lea esi, [esi]
mov edx, dword [ebp - 0x40]
mov byte [edx + edi + 0xc6c], 0
inc edx
mov dword [ebp - 0x40], edx
cmp edx, 0xff
jle 0x4c2900
mov dword [ebp - 0x40], 0
mov ecx, dword [ebp - 0x40]
cmp byte [ecx + edi + 0xd6c], 0
je 0x4c2a5e
mov dword [ebp - 0x44], 0
jmp 0x4c1e98
lea ecx, [esi - 1]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov esi, ecx
mov dword [edi + 0x20], ecx
test al, 1
je 0x4c3302
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x50]
inc eax
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], ecx
jl 0x4c1c88
mov dword [ebp - 0x3c], 0xfffffffc
jmp 0x4c1230
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov byte [ebp - 0x38], al
mov esi, ecx
xor eax, eax
mov dword [edi + 0x20], ecx
mov ecx, dword [edi + 0x34]
mov al, byte [ebp - 0x38]
shl ecx, 8
mov dword [ebp - 0x3c], 0xfffffffc
or ecx, eax
mov dword [edi + 0x34], ecx
test ecx, ecx
js 0x4c1230
mov eax, dword [edi + 0x24]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 5
add eax, 0xa
cmp ecx, eax
jg 0x4c1230
mov dword [ebp - 0x40], 0
jmp 0x4c1ef0
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov byte [ebp - 0x38], al
xor edx, edx
mov eax, dword [edi + 0x34]
mov dl, byte [ebp - 0x38]
shl eax, 8
mov esi, ecx
or eax, edx
mov dword [edi + 0x20], ecx
mov dword [edi + 0x34], eax
jmp 0x4c1f47
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov byte [ebp - 0x38], al
xor edx, edx
mov eax, dword [edi + 0x34]
mov dl, byte [ebp - 0x38]
shl eax, 8
mov esi, ecx
or eax, edx
mov dword [edi + 0x20], ecx
mov dword [edi + 0x34], eax
jmp 0x4c1fa1
lea ecx, [esi - 1]
mov eax, dword [edi + 0x1c]
shr eax, cl
and eax, 1
mov esi, ecx
mov dword [edi + 0x20], ecx
mov byte [edi + 0x10], al
mov dword [edi + 0x34], 0
jmp 0x4c1ff9
lea ecx, [esi - 1]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov esi, ecx
mov dword [edi + 0x20], ecx
test al, 1
jne 0x4c2fd8
mov eax, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0xf
jle 0x4c1e98
mov eax, dword [ebp - 0x40]
inc eax
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0xf
jle 0x4c291e
mov dword [edi + 0xc68], 0
xor edx, edx
nop
lea esi, [esi]
cmp byte [edx + edi + 0xc6c], 0
je 0x4c2a9e
mov eax, dword [edi + 0xc68]
mov byte [eax + edi + 0xd7c], dl
inc eax
mov dword [edi + 0xc68], eax
inc edx
cmp edx, 0xff
jle 0x4c2a80
mov eax, dword [edi + 0xc68]
mov dword [ebp - 0x3c], 0xfffffffc
test eax, eax
je 0x4c1230
add eax, 2
mov dword [ebp - 0x4c], eax
jmp 0x4c1e40
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov byte [ebp - 0x38], al
xor edx, edx
mov eax, dword [edi + 0xc58]
mov dl, byte [ebp - 0x38]
shl eax, 8
mov esi, ecx
or eax, edx
mov dword [edi + 0x20], ecx
mov dword [edi + 0xc58], eax
jmp 0x4c2051
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov byte [ebp - 0x38], al
xor edx, edx
mov eax, dword [edi + 0xc5c]
mov dl, byte [ebp - 0x38]
shl eax, 8
mov dword [edi + 0x20], ecx
or eax, edx
mov dword [edi + 4], 1
mov dword [edi + 0xc5c], eax
mov dword [ebp - 0x3c], 4
jmp 0x4c1230
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov byte [ebp - 0x38], al
xor edx, edx
mov eax, dword [edi + 0xc58]
mov dl, byte [ebp - 0x38]
shl eax, 8
mov esi, ecx
or eax, edx
mov dword [edi + 0x20], ecx
mov dword [edi + 0xc58], eax
jmp 0x4c20a8
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov byte [ebp - 0x38], al
xor edx, edx
mov eax, dword [edi + 0xc5c]
mov dl, byte [ebp - 0x38]
shl eax, 8
mov esi, ecx
or eax, edx
mov dword [edi + 0x20], ecx
mov dword [edi + 0xc5c], eax
jmp 0x4c227d
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov byte [ebp - 0x38], al
xor edx, edx
mov eax, dword [edi + 0xc58]
mov dl, byte [ebp - 0x38]
shl eax, 8
mov esi, ecx
or eax, edx
mov dword [edi + 0x20], ecx
mov dword [edi + 0xc58], eax
jmp 0x4c22d5
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov byte [ebp - 0x38], al
xor edx, edx
mov eax, dword [edi + 0xc5c]
mov dl, byte [ebp - 0x38]
shl eax, 8
mov esi, ecx
or eax, edx
mov dword [edi + 0x20], ecx
mov dword [edi + 0xc5c], eax
jmp 0x4c2801
lea ecx, [esi - 0xf]
mov eax, dword [edi + 0x1c]
shr eax, cl
and eax, 0x7fff
mov esi, ecx
mov dword [edi + 0x20], ecx
mov dword [ebp - 0x54], eax
jle 0x4c2968
mov dword [ebp - 0x40], 0
mov edx, dword [ebp - 0x54]
cmp dword [ebp - 0x40], edx
jge 0x4c2ff0
mov dword [ebp - 0x44], 0
jmp 0x4c1c88
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov byte [ebp - 0x38], al
xor edx, edx
mov eax, dword [edi + 0xc5c]
mov dl, byte [ebp - 0x38]
shl eax, 8
mov esi, ecx
or eax, edx
mov dword [edi + 0x20], ecx
mov dword [edi + 0xc5c], eax
jmp 0x4c2750
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov esi, ecx
mov dword [edi + 0x20], ecx
mov dword [ebp - 0x3c], 0xfffffffc
cmp al, 0x59
jne 0x4c1230
mov eax, dword [edi + 0x2c]
inc eax
mov dword [edi + 0x2c], eax
cmp dword [edi + 0x30], 1
jg 0x4c3161
mov dword [edi + 0xc58], 0
jmp 0x4c2389
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov byte [ebp - 0x38], al
xor edx, edx
mov eax, dword [edi + 0xc58]
mov dl, byte [ebp - 0x38]
shl eax, 8
mov esi, ecx
or eax, edx
mov dword [edi + 0x20], ecx
mov dword [edi + 0xc58], eax
jmp 0x4c2331
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov esi, ecx
mov dword [edi + 0x20], ecx
mov dword [ebp - 0x3c], 0xfffffffc
cmp al, 0x26
jne 0x4c1230
jmp 0x4c2439
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov esi, ecx
mov dword [edi + 0x20], ecx
mov dword [ebp - 0x3c], 0xfffffffc
cmp al, 0x53
jne 0x4c1230
jmp 0x4c23e1
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
movzx edx, al
mov dword [edi + 0x20], ecx
lea eax, [edx - 0x31]
cmp eax, 8
ja 0x4c3070
lea eax, [edx - 0x30]
mov dword [edi + 0x24], eax
cmp byte [edi + 0x28], 0
je 0x4c141d
lea eax, [eax + eax*4]
push edx
push 1
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 6
push eax
mov eax, dword [ebx + 0x2c]
push eax
call dword [ebx + 0x24]
add esp, 0xc
mov dword [edi + 0xc50], eax
push 1
mov eax, dword [edi + 0x24]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 5
sar eax, 1
push eax
mov esi, dword [ebx + 0x2c]
push esi
call dword [ebx + 0x24]
mov ecx, dword [edi + 0xc50]
add esp, 0x10
mov dword [edi + 0xc54], eax
test ecx, ecx
je 0x4c2d6f
test eax, eax
jne case.0x4c1209.14
mov dword [ebp - 0x3c], 0xfffffffd
jmp 0x4c1230
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov esi, ecx
mov dword [edi + 0x20], ecx
mov dword [ebp - 0x3c], 0xfffffffc
cmp al, 0x50
jne 0x4c1230
jmp 0x4c2648
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov esi, ecx
mov dword [edi + 0x20], ecx
mov dword [ebp - 0x3c], 0xfffffffc
cmp al, 0x90
jne 0x4c1230
mov dword [edi + 0xc5c], 0
jmp 0x4c27a8
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov esi, ecx
mov dword [edi + 0x20], ecx
mov dword [ebp - 0x3c], 0xfffffffb
cmp al, 0x68
jne 0x4c1230
jmp 0x4c1d38
lea ecx, [esi - 1]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov esi, ecx
mov dword [edi + 0x20], ecx
test al, 1
jne 0x4c2fcc
mov ebx, dword [ebp - 0x78]
inc ebx
mov dword [ebp - 0x78], ebx
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x3c], 0xfffffffc
dec eax
cmp eax, 0x13
jbe 0x4c1bd3
jmp 0x4c1230
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov esi, ecx
mov dword [edi + 0x20], ecx
mov dword [ebp - 0x3c], 0xfffffffc
cmp al, 0x59
jne 0x4c1230
jmp 0x4c2491
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov esi, ecx
mov dword [edi + 0x20], ecx
mov dword [ebp - 0x3c], 0xfffffffc
cmp al, 0x38
jne 0x4c1230
jmp 0x4c26a1
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov esi, ecx
mov dword [edi + 0x20], ecx
mov dword [ebp - 0x3c], 0xfffffffc
cmp al, 0x45
jne 0x4c1230
jmp 0x4c2101
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov esi, ecx
mov dword [edi + 0x20], ecx
mov dword [ebp - 0x3c], 0xfffffffc
cmp al, 0x41
jne 0x4c1230
jmp 0x4c24e9
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov esi, ecx
mov dword [edi + 0x20], ecx
mov dword [ebp - 0x3c], 0xfffffffb
cmp al, 0x5a
jne 0x4c1230
jmp 0x4c1d8f
lea ecx, [esi - 1]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov esi, ecx
mov dword [edi + 0x20], ecx
mov ecx, dword [ebp - 0x84]
and eax, 1
add ecx, ecx
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], ecx
mov edx, dword [ebp - 0x84]
or edx, eax
mov dword [ebp - 0x84], edx
jmp 0x4c1793
lea ecx, [esi - 1]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov esi, ecx
mov dword [edi + 0x20], ecx
mov ecx, dword [ebp - 0x84]
and eax, 1
add ecx, ecx
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], ecx
mov edx, dword [ebp - 0x84]
or edx, eax
jmp 0x4c1b41
mov eax, dword [ebp - 0x84]
lea ecx, [esi - 1]
add eax, eax
mov edx, dword [edi + 0x1c]
mov dword [ebp - 0x84], eax
mov esi, ecx
shr edx, cl
and edx, 1
mov eax, dword [ebp - 0x84]
or eax, edx
mov dword [edi + 0x20], ecx
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x84], eax
jmp 0x4c194a
lea ecx, [esi - 5]
mov eax, dword [edi + 0x1c]
shr eax, cl
and eax, 0x1f
mov esi, ecx
mov dword [edi + 0x20], ecx
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x40], 0
jmp 0x4c1510
lea ecx, [esi - 8]
mov eax, dword [edi + 0x1c]
shr eax, cl
mov esi, ecx
mov dword [edi + 0x20], ecx
mov dword [ebp - 0x3c], 0xfffffffc
cmp al, 0x72
jne 0x4c1230
jmp 0x4c2159
lea ecx, [esi - 3]
mov eax, dword [edi + 0x1c]
shr eax, cl
and eax, 7
mov esi, ecx
mov dword [ebp - 0x50], eax
sub eax, 2
mov dword [edi + 0x20], ecx
mov dword [ebp - 0x3c], 0xfffffffc
cmp eax, 4
jbe 0x4c1ce0
jmp 0x4c1230
mov ecx, dword [ebp - 0x78]
dec ecx
mov dword [ebp - 0x78], ecx
jmp 0x4c2e04
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x44]
shl eax, 4
add eax, edi
mov byte [eax + edx + 0xc6c], 1
jmp 0x4c2a4d
mov ebx, dword [ebp - 0x50]
xor ecx, ecx
test ebx, ebx
jle 0x4c300b
xor eax, eax
mov al, cl
mov byte [ebp + eax - 0x28], cl
inc ecx
xor eax, eax
mov al, cl
cmp eax, dword [ebp - 0x50]
jl 0x4c2ff9
mov dword [ebp - 0x40], 0
mov eax, dword [ebp - 0x54]
cmp dword [ebp - 0x40], eax
jge 0x4c3058
mov edx, dword [ebp - 0x40]
xor eax, eax
mov cl, byte [edx + edi + 0x650e]
mov al, cl
test cl, cl
mov bl, byte [ebp + eax - 0x28]
jmp 0x4c303e
xor edx, edx
mov dl, cl
dec cl
mov al, byte [ebp + edx - 0x29]
mov byte [ebp + edx - 0x28], al
jne 0x4c3030
mov ecx, dword [ebp - 0x40]
mov byte [ebp - 0x28], bl
mov byte [ecx + edi + 0x1ebc], bl
inc ecx
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x40], ecx
cmp ecx, eax
jmp 0x4c3018
mov dword [ebp - 0x48], 0
mov edx, dword [ebp - 0x50]
cmp dword [ebp - 0x48], edx
jl 0x4c1c30
jmp 0x4c160b
mov dword [edi + 0x24], edx
mov dword [ebp - 0x3c], 0xfffffffb
jmp 0x4c1230
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x3c], 0xfffffffc
mov ebx, dword [edx + ecx*4]
sub eax, ebx
cmp eax, 0x101
ja 0x4c1230
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x64], eax
cmp eax, 1
jbe 0x4c1817
mov eax, dword [ebp - 0x70]
inc eax
mov dword [ebp - 0x70], eax
mov eax, dword [edi + 0x1e7c]
mov edx, dword [ebp - 0x70]
mov al, byte [eax + edi + 0xe7c]
and eax, 0xff
mov al, byte [eax + edi + 0xd7c]
mov byte [ebp - 0x38], al
xor eax, eax
mov al, byte [ebp - 0x38]
mov esi, dword [edi + eax*4 + 0x40]
add esi, edx
mov dword [edi + eax*4 + 0x40], esi
cmp byte [edi + 0x28], 0
je 0x4c3155
test edx, edx
jle 0x4c17f3
xor edx, edx
mov dl, byte [ebp - 0x38]
mov ecx, dword [ebp - 0x68]
cmp dword [ebp - 0x6c], ecx
jge 0x4c2968
mov ecx, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x70]
mov eax, dword [edi + 0xc50]
dec ebx
mov dword [ebp - 0x70], ebx
mov word [eax + ecx*2], dx
inc ecx
mov dword [ebp - 0x6c], ecx
mov ecx, dword [ebp - 0x70]
test ecx, ecx
jg 0x4c3102
jmp 0x4c17f3
mov edx, dword [ebp - 0x68]
cmp dword [ebp - 0x6c], edx
jge 0x4c2968
mov ecx, dword [ebp - 0x6c]
mov ebx, dword [edi + 0xc4c]
mov esi, dword [ebp - 0x70]
mov dword [ebx + ecx*4], eax
dec esi
inc ecx
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], ecx
mov edx, dword [ebp - 0x70]
test edx, edx
jg 0x4c3132
jmp 0x4c17f3
push ecx
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push str._n______d:_huffmtf
push eax
call sub.msvcrt.dll_fprintf
add esp, 0x10
mov esi, dword [edi + 0x20]
jmp 0x4c2c67
mov eax, dword [edi + 0x34]
test eax, eax
js 0x4c2968
cmp eax, dword [ebp - 0x6c]
jge 0x4c2968
mov dword [edi + 0x444], 0
mov dword [ebp - 0x40], 1
mov ecx, dword [ebp - 0x40]
mov eax, dword [edi + ecx*4 + 0x3c]
mov dword [edi + ecx*4 + 0x444], eax
inc ecx
mov dword [ebp - 0x40], ecx
cmp ecx, 0x100
jle 0x4c31a6
mov dword [ebp - 0x40], 1
mov edx, dword [ebp - 0x40]
mov ebx, dword [edi + edx*4 + 0x444]
mov eax, dword [edi + edx*4 + 0x440]
add ebx, eax
mov dword [edi + edx*4 + 0x444], ebx
inc edx
mov dword [ebp - 0x40], edx
cmp edx, 0x100
jle 0x4c31c7
mov dword [ebp - 0x40], 0
mov ecx, dword [ebp - 0x40]
mov eax, dword [edi + ecx*4 + 0x444]
test eax, eax
js 0x4c2968
cmp eax, dword [ebp - 0x6c]
jg 0x4c2968
mov ecx, dword [ebp - 0x40]
inc ecx
mov dword [ebp - 0x40], ecx
cmp dword [ebp - 0x40], 0x100
jle 0x4c31f4
mov dword [edi + 0xc], 0
mov byte [edi + 8], 0
mov dword [edi + 0xc60], 0xffffffff
mov dword [edi + 4], 2
cmp dword [edi + 0x30], 1
jle 0x4c325b
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
push 6
push 1
push str.rtrld
call sub.msvcrt.dll_fwrite
add esp, 0x10
cmp byte [edi + 0x28], 0
je 0x4c3419
mov dword [ebp - 0x40], 0
mov edx, dword [ebp - 0x40]
mov eax, dword [edi + edx*4 + 0x444]
mov dword [edi + edx*4 + 0x848], eax
inc edx
mov dword [ebp - 0x40], edx
cmp edx, 0x100
jle 0x4c326c
mov dword [ebp - 0x40], 0
mov ecx, dword [ebp - 0x6c]
cmp dword [ebp - 0x40], ecx
jge 0x4c34af
mov edx, dword [edi + 0xc50]
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x40]
mov al, byte [edx + eax*2]
mov byte [ebp - 0x38], al
xor eax, eax
mov al, byte [ebp - 0x38]
test cl, 1
mov ebx, dword [edi + eax*4 + 0x848]
mov word [edx + ecx*2], bx
jne 0x4c348e
sar ebx, 0x10
mov eax, ecx
sar eax, 1
mov ecx, dword [edi + 0xc54]
mov dl, byte [ecx + eax]
and edx, 0xfffffff0
or edx, ebx
mov byte [ecx + eax], dl
xor eax, eax
mov esi, dword [ebp - 0x40]
mov al, byte [ebp - 0x38]
inc esi
mov dword [ebp - 0x40], esi
mov edx, dword [edi + eax*4 + 0x848]
inc edx
mov dword [edi + eax*4 + 0x848], edx
mov eax, dword [ebp - 0x6c]
cmp dword [ebp - 0x40], eax
jmp 0x4c3296
mov edx, dword [ebp - 0x40]
mov al, byte [ebp - 0x44]
mov byte [edx + edi + 0x650e], al
inc edx
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x40], edx
cmp edx, ecx
jmp 0x4c2bfd
cmp dword [ebp - 0x64], 1
jne 0x4c182d
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x74]
lea edx, [edx + eax*2]
mov dword [ebp - 0x70], edx
jmp 0x4c182d
mov ebx, dword [edi + 0xc4c]
mov eax, dword [ebp - 0x6c]
mov dword [ebx + eax*4], edx
jmp 0x4c1a33
mov ecx, ebx
and ebx, 0xf
shr ecx, 4
mov edx, dword [edi + ecx*4 + 0x1e7c]
lea esi, [edx + ebx]
mov al, byte [esi + edi + 0xe7c]
mov byte [ebp - 0x38], al
jmp 0x4c3376
mov al, byte [esi + edi + 0xe7b]
mov byte [esi + edi + 0xe7c], al
dec esi
cmp edx, esi
jl 0x4c3367
lea eax, [edx + 1]
test ecx, ecx
mov edx, eax
jg 0x4c338f
jmp 0x4c3410
mov edx, dword [edi + ecx*4 + 0x1e7c]
lea eax, [edx - 1]
mov edx, dword [edi + ecx*4 + 0x1e78]
mov dword [edi + ecx*4 + 0x1e7c], eax
dec ecx
mov dl, byte [edx + edi + 0xe8b]
test ecx, ecx
mov byte [eax + edi + 0xe7c], dl
jg 0x4c3388
mov eax, dword [edi + 0x1e7c]
mov dl, byte [ebp - 0x38]
dec eax
mov dword [edi + 0x1e7c], eax
test eax, eax
mov byte [eax + edi + 0xe7c], dl
jne 0x4c19fe
mov ebx, 0xfff
mov esi, 0xf
mov eax, dword [edi + esi*4 + 0x1e7c]
mov ecx, 0xf
add eax, edi
lea edx, [eax + 0xe8b]
mov al, byte [edx]
dec edx
mov byte [ebx + edi + 0xe7c], al
dec ebx
dec ecx
jns 0x4c33f0
lea eax, [ebx + 1]
mov dword [edi + esi*4 + 0x1e7c], eax
dec esi
jns 0x4c33dc
jmp 0x4c19fe
mov dword [edi + ecx*4 + 0x1e7c], eax
jmp 0x4c33b3
mov dword [ebp - 0x40], 0
mov ecx, dword [ebp - 0x6c]
cmp dword [ebp - 0x40], ecx
jge 0x4c2856
mov ebx, dword [edi + 0xc4c]
mov edx, dword [ebp - 0x40]
xor eax, eax
mov al, byte [ebx + edx*4]
shl edx, 8
mov ecx, dword [edi + eax*4 + 0x444]
mov esi, dword [ebx + ecx*4]
or esi, edx
mov dword [ebx + ecx*4], esi
mov ecx, dword [ebp - 0x6c]
mov edx, dword [edi + eax*4 + 0x444]
inc edx
mov dword [edi + eax*4 + 0x444], edx
mov eax, dword [ebp - 0x40]
inc eax
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], ecx
jl 0x4c3432
jmp 0x4c285c
mov eax, dword [ebx + eax*4]
xor edx, edx
mov dl, al
mov dword [edi + 0x440], 1
shr eax, 8
mov dword [edi + 0x3c], edx
mov dword [edi + 0x38], eax
jmp 0x4c28c2
mov ecx, dword [ebp - 0x40]
mov edx, dword [edi + 0xc54]
sar ecx, 1
sar ebx, 0x10
shl ebx, 4
mov al, byte [edx + ecx]
and eax, 0xf
or eax, ebx
mov byte [edx + ecx], al
jmp 0x4c32df
mov edx, dword [edi + 0x34]
mov esi, dword [edi + 0xc50]
mov dword [ebp - 0x40], edx
mov ax, word [esi + edx*2]
mov ecx, dword [ebp - 0x40]
shl ecx, 2
and eax, 0xffff
mov dword [ebp - 0x44], eax
mov eax, edx
sar eax, 1
mov edx, dword [edi + 0xc54]
and ecx, 4
mov ebx, dword [ebp - 0x44]
mov al, byte [edx + eax]
and eax, 0xff
shr eax, cl
and eax, 0xf
shl eax, 0x10
or ebx, eax
mov dword [ebp - 0x44], ebx
jmp 0x4c352b
mov al, byte [edx + ebx]
mov esi, dword [ebp - 0x40]
sar esi, 0x10
and eax, 0xfffffff0
mov dword [ebp - 0x40], esi
mov ecx, dword [ebp - 0x40]
or eax, ecx
mov byte [edx + ebx], al
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0xa0]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x44], edx
cmp dword [edi + 0x34], eax
je 0x4c358a
mov esi, dword [edi + 0xc50]
mov edx, dword [edi + 0xc54]
mov ecx, dword [ebp - 0x44]
mov ebx, ecx
sar ebx, 1
mov ax, word [esi + ecx*2]
shl ecx, 2
and eax, 0xffff
mov dword [ebp - 0xa0], eax
xor eax, eax
mov al, byte [edx + ebx]
and ecx, 4
shr eax, cl
and eax, 0xf
mov ecx, dword [ebp - 0xa0]
shl eax, 0x10
or ecx, eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0xa0], ecx
mov ecx, dword [ebp - 0x40]
mov word [esi + eax*2], cx
test al, 1
je 0x4c34f4
mov ecx, dword [ebp - 0x40]
mov al, byte [edx + ebx]
sar ecx, 0x10
and eax, 0xf
mov dword [ebp - 0x40], ecx
mov esi, dword [ebp - 0x40]
shl esi, 4
jmp 0x4c3500
mov dword [edi + 0x38], eax
mov dword [edi + 0x440], 0
cmp byte [edi + 0x10], 0
je 0x4c3643
mov dword [edi + 0x14], 0
mov dword [edi + 0x18], 0
push eax
push eax
lea eax, [edi + 0x444]
push eax
mov eax, dword [ebp - 0x40]
push eax
call fcn.004beff0
mov ecx, dword [edi + 0x38]
mov esi, eax
mov dword [edi + 0x3c], eax
mov eax, dword [edi + 0xc50]
mov ebx, ecx
add esp, 0x10
shr ebx, 1
mov dx, word [eax + ecx*2]
mov eax, dword [edi + 0xc54]
and edx, 0xffff
shl ecx, 2
mov al, byte [eax + ebx]
and ecx, 4
and eax, 0xff
shr eax, cl
and eax, 0xf
shl eax, 0x10
or edx, eax
mov eax, dword [edi + 0x440]
inc eax
mov dword [edi + 0x38], edx
mov dword [edi + 0x440], eax
mov eax, dword [edi + 0x14]
test eax, eax
jne 0x4c362f
mov eax, dword [edi + 0x18]
mov edx, dword [eax*4 + 0x4d2040]
inc eax
mov dword [edi + 0x14], edx
cmp eax, 0x200
je 0x4c36a5
mov dword [edi + 0x18], eax
mov eax, edx
dec eax
mov dword [edi + 0x14], eax
dec eax
sete al
and eax, 0xff
xor eax, esi
jmp 0x4c28bf
push eax
push eax
lea eax, [edi + 0x444]
push eax
mov eax, dword [ebp - 0x40]
push eax
call fcn.004beff0
mov ecx, dword [edi + 0x38]
add esp, 0x10
mov dword [edi + 0x3c], eax
mov eax, dword [edi + 0xc50]
mov ebx, ecx
shr ebx, 1
mov dx, word [eax + ecx*2]
mov eax, dword [edi + 0xc54]
and edx, 0xffff
shl ecx, 2
mov al, byte [eax + ebx]
and ecx, 4
and eax, 0xff
shr eax, cl
and eax, 0xf
shl eax, 0x10
or edx, eax
mov eax, dword [edi + 0x440]
inc eax
mov dword [edi + 0x38], edx
mov dword [edi + 0x440], eax
jmp 0x4c28c2
mov dword [edi + 0x18], 0
jmp 0x4c362d