Function at 0x4e4de0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3cc
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], ebx
mov edi, dword [eax + 4]
test edi, edi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], eax
je 0x4e6bf1
xor eax, eax
mov ebx, 1
mov esi, dword [edi + 0x58]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov edx, dword [esi + 0xc]
cmp edx, 1
jle 0x4e4e94
lea eax, [edx - 1]
mov dword [ebp - 4], eax
mov dword [esi + 0xc], eax
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x4e4eda
test al, 0x20
je 0x4e4eda
mov ecx, dword [ebp + 0xc]
movsx ecx, byte [ecx]
cmp ecx, 2
je 0x4e5fe2
and eax, 0xffffffdf
cmp ecx, 1
je 0x4e5fc7
and eax, 0xffffffbf
push edi
mov byte [esi + 0x4f], al
mov dword [ebp - 0x38], edx
call fcn.00514580
mov edx, dword [ebp - 0x38]
add esp, 4
test eax, eax
jne 0x4e5f56
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x4e4e86
test al, 0x20
jne 0x4e6bbe
mov edx, dword [ebp - 4]
mov dword [esi + 0xc], edx
or eax, 0x20
mov byte [esi + 0x4f], al
jmp 0x4e4eda
mov eax, dword [ebp + 0xc]
movsx edx, byte [eax]
cmp edx, 2
je 0x4e6b9f
movzx eax, byte [esi + 0x4f]
and eax, 0xffffffdf
cmp edx, 1
je 0x4e6b84
and eax, 0xffffffbf
push edi
mov byte [esi + 0x4f], al
call fcn.00514580
add esp, 4
test eax, eax
jne 0x4e6b13
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x4e4eda
test al, 0x20
jne 0x4e5ffd
movsx edx, byte [esi + 0x48]
add edx, 0xfffffffe
cmp edx, 0x1a
ja case.0x4e4eea.3
jmp dword [edx*4 + 0x5ecf00]
mov eax, dword [esi + 0x3c]
mov dword [ebp - 0x1c0], eax
mov eax, dword [edi + 0x3c]
mov ecx, dword [esi + 0x38]
mov dword [ebp - 0x1b4], ecx
mov edx, dword [edi + 0x44]
mov dword [ebp - 0x1bc], edx
add ecx, eax
cmp edx, ecx
jb 0x4e6043
cmp dword [ebp - 0x1b4], 0
jg 0x4e6017
mov edx, dword [edi + 0x4c]
cmp eax, edx
mov dword [edi + 0x128], 0
ja 0x4e4f39
mov eax, edx
mov dword [edi + 0x4c], eax
or byte [edi + 0x171], 0x80
jmp 0x4e4e19
mov edx, dword [edi + 0x7c]
test edx, edx
je 0x4e4f67
movzx eax, byte [edx + 0x1e]
test eax, eax
je 0x4e4f67
mov byte [edx + 0x1e], 0
mov dword [ebp - 0x1b8], 1
jmp 0x4e4f71
mov dword [ebp - 0x1b8], 0
movzx eax, byte [edi + 0x16d]
test al, 0x40
je 0x4e4f89
cmp byte [edi + 0x156], 1
je 0x4e610b
push edi
call fcn.00508d70
add esp, 4
test eax, eax
jne 0x4e61e6
add dword [edi + 0x98], 1
push 0
push edi
adc dword [edi + 0x9c], 0
and byte [edi + 0x16f], 0xfb
call fcn.0050a260
add esp, 8
test eax, eax
jne 0x4e6161
movsx eax, byte [edi + 0x154]
mov dword [ebp - 0x1c4], eax
lea eax, [eax - 1]
cmp eax, 7
ja case.default.0x4e4fdb
jmp dword [eax*4 + 0x5ecf80]
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x4e4fee
mov dword [edi + 0x3c], ecx
jmp 0x4e4ff4
mov ecx, dword [edi + 0x38]
mov dword [edi + 0x3c], ecx
mov eax, dword [edi + 0xf8]
movzx edx, byte [edi + 0x168]
lea eax, [ecx + eax - 1]
mov dword [edi + 0x44], eax
jmp 0x4e5121
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4e6142
test byte [eax + 0x44], 2
je 0x4e504d
mov edx, 0x2c
mov dword [eax + 0x38], edx
mov eax, dword [edi + 0x18]
mov dword [eax + 0x3c], edx
mov edx, dword [edi + 0x64]
test edx, edx
je 0x4e503b
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, 0x2c
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, 0x2c
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x4e5083
add ecx, 4
jmp 0x4e5089
mov ecx, dword [edi + 0x38]
add ecx, 4
mov eax, dword [edi + 0xf8]
mov dword [edi + 0x3c], ecx
movzx edx, byte [edi + 0x168]
lea eax, [ecx + eax - 8]
mov dword [edi + 0x44], eax
jmp 0x4e5121
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x4e50ae
mov dword [edi + 0x3c], ecx
jmp 0x4e50b4
mov ecx, dword [edi + 0x38]
mov dword [edi + 0x3c], ecx
mov eax, dword [edi + 0xf8]
movzx edx, byte [edi + 0x168]
test dl, 4
mov dword [ebp - 0x1fc], eax
lea eax, [ecx + eax]
je 0x4e50ea
test byte [edi + 0x16a], 0x40
je 0x4e50ea
test byte [edi + 0x16b], 8
je 0x4e50ea
cmp dword [ebp - 0x1c4], 1
je 0x4e50ef
mov dword [edi + 0x44], eax
jmp 0x4e5121
mov eax, dword [ebp - 0x1fc]
lea eax, [ecx + eax - 2]
mov dword [edi + 0x44], eax
jmp 0x4e5121
push 0x468
push str.for_wseq_fmt.c
push 2
push 8
call fcn.004db180
add esp, 0x10
movzx edx, byte [edi + 0x168]
mov ecx, dword [edi + 0x3c]
mov eax, dword [edi + 0x44]
test dl, 4
je 0x4e5141
test byte [edi + 0x16a], 0x40
je 0x4e5141
test byte [edi + 0x16b], 8
je 0x4e5141
cmp byte [edi + 0x154], 1
je 0x4e518e
movsx edx, byte [edi + 0x156]
cmp edx, 2
jne 0x4e5169
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x4e518e
cmp edx, 6
je 0x4e518e
cmp edx, 8
je 0x4e518e
dec eax
mov dword [edi + 0x44], eax
jmp 0x4e518e
cmp edx, 1
jne 0x4e518e
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x4e5188
cmp edx, 6
je 0x4e5188
cmp edx, 8
je 0x4e5188
dec eax
mov dword [edi + 0x44], eax
add ecx, 5
mov dword [edi + 0x3c], ecx
sub eax, ecx
push eax
push 0x20
push ecx
mov dword [edi + 0x48], ecx
mov dword [edi + 0x4c], ecx
call fcn.005a3600
add esp, 0xc
mov dword [edi + 0x128], 0
cmp dword [ebp - 0x1b8], 0
je 0x4e4e19
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
jmp 0x4e4e19
cmp ebx, 2
jge 0x4e4e19
jmp 0x4e6257
test byte [edi + 0x168], 4
je 0x4e51ee
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
mov edx, dword [edi + 0x7c]
mov dword [edx + 0xc], edi
jmp 0x4e4e19
or byte [edi + 0x16d], 0x40
jmp 0x4e4e19
mov edx, dword [ebp + 0xc]
movsx edx, byte [edx]
cmp edx, 1
je 0x4e66f9
cmp edx, 2
je 0x4e66da
test byte [esi + 0x4e], 0x20
jne 0x4e52bd
test byte [edi + 0x168], 2
je 0x4e5253
test eax, 0x80
je 0x4e5253
push ebx
lea eax, [ebp - 0x37c]
push eax
lea edx, [ebp - 0x1d4]
push edx
lea ecx, [ebp + 0x10]
push ecx
lea eax, [ebp + 0xc]
push eax
call fcn.005107f0
add esp, 0x14
test eax, eax
jne 0x4e6553
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4e6534
test byte [eax + 0x44], 2
je 0x4e5293
mov edx, 0x69
mov dword [eax + 0x38], edx
mov eax, dword [edi + 0x18]
mov dword [eax + 0x3c], edx
mov edx, dword [edi + 0x64]
test edx, edx
je 0x4e5281
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, 0x69
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, 0x69
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x7c]
test edx, edx
je 0x4e52d7
movzx eax, byte [edx + 0x1e]
test eax, eax
je 0x4e52d7
mov byte [edx + 0x1e], 0
mov edx, 1
jmp 0x4e52d9
xor edx, edx
cmp dword [edi + 0x128], 0
je 0x4e5307
movzx eax, byte [edi + 0x171]
test eax, 0x80
mov dword [edi + 0x128], 0
jne 0x4e5307
cmp dword [edi + 0x130], 0
jne 0x4e55e3
movzx eax, byte [edi + 0x16d]
test al, 0x40
mov dword [ebp - 0x1e0], eax
je 0x4e5325
cmp byte [edi + 0x156], 1
je 0x4e657c
push edi
mov dword [ebp - 0x1dc], edx
call fcn.00508d70
mov edx, dword [ebp - 0x1dc]
add esp, 4
test eax, eax
jne 0x4e6669
add dword [edi + 0x98], 1
push 0
push edi
adc dword [edi + 0x9c], 0
and byte [edi + 0x16f], 0xfb
mov dword [ebp - 0x1dc], edx
call fcn.0050a260
mov edx, dword [ebp - 0x1dc]
add esp, 8
test eax, eax
jne 0x4e65e4
movsx eax, byte [edi + 0x154]
mov dword [ebp - 0x1e8], eax
lea eax, [eax - 1]
cmp eax, 7
ja case.default.0x4e538f
jmp dword [eax*4 + 0x5ecfa0]
mov eax, dword [edi + 0x40]
test eax, eax
je 0x4e53a2
mov dword [edi + 0x3c], eax
jmp 0x4e53a8
mov eax, dword [edi + 0x38]
mov dword [edi + 0x3c], eax
mov ecx, dword [edi + 0xf8]
lea ecx, [eax + ecx - 1]
mov dword [ebp - 0x1f4], ecx
mov dword [edi + 0x44], ecx
movzx ecx, byte [edi + 0x168]
mov dword [ebp - 0x1f0], ecx
jmp 0x4e551f
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4e65c5
test byte [eax + 0x44], 2
je 0x4e540d
mov edx, 0x2c
mov dword [eax + 0x38], edx
mov eax, dword [edi + 0x18]
mov dword [eax + 0x3c], edx
mov edx, dword [edi + 0x64]
test edx, edx
je 0x4e53fb
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, 0x2c
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, 0x2c
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x40]
test eax, eax
je 0x4e5443
add eax, 4
jmp 0x4e5449
mov eax, dword [edi + 0x38]
add eax, 4
mov ecx, dword [edi + 0xf8]
mov dword [edi + 0x3c], eax
lea ecx, [eax + ecx - 8]
mov dword [ebp - 0x1f4], ecx
mov dword [edi + 0x44], ecx
movzx ecx, byte [edi + 0x168]
mov dword [ebp - 0x1f0], ecx
jmp 0x4e551f
mov eax, dword [edi + 0x40]
test eax, eax
je 0x4e547d
mov dword [edi + 0x3c], eax
jmp 0x4e5483
mov eax, dword [edi + 0x38]
mov dword [edi + 0x3c], eax
mov ecx, dword [edi + 0xf8]
mov dword [ebp - 0x3c8], ecx
add ecx, eax
mov dword [ebp - 0x1f4], ecx
movzx ecx, byte [edi + 0x168]
test cl, 4
mov dword [ebp - 0x1f0], ecx
je 0x4e54c4
test byte [edi + 0x16a], 0x40
je 0x4e54c4
test byte [edi + 0x16b], 8
je 0x4e54c4
cmp dword [ebp - 0x1e8], 1
je 0x4e54cf
mov ecx, dword [ebp - 0x1f4]
mov dword [edi + 0x44], ecx
jmp 0x4e551f
mov ecx, dword [ebp - 0x3c8]
lea ecx, [eax + ecx - 2]
mov dword [ebp - 0x1f4], ecx
mov dword [edi + 0x44], ecx
jmp 0x4e551f
push 0x538
push str.for_wseq_fmt.c
push 2
push 8
mov dword [ebp - 0x1dc], edx
call fcn.004db180
mov edx, dword [ebp - 0x1dc]
add esp, 0x10
movzx eax, byte [edi + 0x168]
mov ecx, dword [edi + 0x44]
mov dword [ebp - 0x1f0], eax
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x1f4], ecx
test byte [ebp - 0x1f0], 4
je 0x4e5543
test byte [edi + 0x16a], 0x40
je 0x4e5543
test byte [edi + 0x16b], 8
je 0x4e5543
cmp byte [edi + 0x154], 1
je 0x4e55a8
movsx ecx, byte [edi + 0x156]
cmp ecx, 2
jne 0x4e5577
movsx ecx, byte [edi + 0x154]
cmp ecx, 7
je 0x4e55a8
cmp ecx, 6
je 0x4e55a8
cmp ecx, 8
je 0x4e55a8
mov ecx, dword [ebp - 0x1f4]
dec ecx
mov dword [ebp - 0x1f4], ecx
mov dword [edi + 0x44], ecx
jmp 0x4e55a8
cmp ecx, 1
jne 0x4e55a8
movsx ecx, byte [edi + 0x154]
cmp ecx, 7
je 0x4e55a2
cmp ecx, 6
je 0x4e55a2
cmp ecx, 8
je 0x4e55a2
mov ecx, dword [ebp - 0x1f4]
dec ecx
mov dword [ebp - 0x1f4], ecx
mov dword [edi + 0x44], ecx
add eax, 5
mov dword [edi + 0x3c], eax
mov ecx, dword [ebp - 0x1f4]
sub ecx, eax
push ecx
push 0x20
push eax
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], 0
mov dword [ebp - 0x1dc], edx
call fcn.005a3600
mov edx, dword [ebp - 0x1dc]
add esp, 0xc
mov dword [edi + 0x130], 1
and byte [edi + 0x171], 0x7f
test edx, edx
je 0x4e55ee
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
mov eax, dword [edi + 0x3c]
mov dword [edi + 0x4c], eax
jmp 0x4e4e19
cmp ebx, 1
jle 0x4e56d5
mov eax, dword [ebp - 0x37c]
cmp eax, 7
je 0x4e5616
cmp eax, 8
jne 0x4e56a3
cmp dword [ebp - 0x20], 0
je 0x4e5635
mov eax, dword [ebp - 0x1c8]
dec ebx
add dword [ebp - 0x1d4], eax
mov dword [ebp - 0x20], 0
jmp 0x4e58d5
cmp dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x20]
je 0x4e5643
mov eax, 1
xor ecx, ecx
mov edx, dword [ebp - 0x378]
test edx, edx
mov dword [ebp - 0x20], eax
jle 0x4e567d
mov dword [ebp - 0x1b0], edi
xor eax, eax
mov edi, dword [ebp + eax*4 - 0x1ac]
sub edi, dword [ebp + eax*4 - 0xb4]
imul edi, dword [ebp + eax*4 - 0x130]
inc eax
add ecx, edi
cmp eax, edx
jl 0x4e565a
mov edi, dword [ebp - 0x1b0]
add ecx, dword [ebp - 0x374]
lea eax, [ebp - 0x37c]
push eax
mov dword [ebp - 0x1d4], ecx
lea edx, [ebp - 0x1ac]
push edx
push 0
call fcn.0050bf90
add esp, 0xc
jmp 0x4e56be
mov edx, dword [ebp - 0x20]
test edx, edx
mov eax, dword [ebp - 0x1c8]
je 0x4e56b5
mov edx, 0
add dword [ebp - 0x1d4], eax
mov dword [ebp - 0x20], edx
mov dword [edi + 0x128], 0
dec ebx
or byte [edi + 0x171], 0x80
jmp 0x4e58d5
lea eax, [ebp - 0x37c]
push eax
lea edx, [ebp - 0x1d4]
push edx
lea ecx, [ebp + 0x10]
push ecx
lea ebx, [ebp + 0xc]
push ebx
call fcn.00510550
add esp, 0x10
test eax, eax
jne 0x4e6aa2
mov ecx, dword [ebp - 0x1cc]
cmp ecx, 2
je 0x4e6bd0
cmp ecx, 1
je 0x4e6266
mov eax, dword [ebp - 0x37c]
cmp eax, 7
jl 0x4e5841
cmp eax, 8
jg 0x4e5841
mov eax, dword [ebp - 0x1c8]
test eax, eax
mov dword [ebp - 0x1f8], eax
je 0x4e574e
mov eax, dword [ebp - 0x1d0]
cdq
mov ebx, dword [ebp - 0x1f8]
idiv ebx
mov ebx, eax
jmp 0x4e5761
test byte [edi + 0x168], 2
je 0x4e5833
mov ebx, dword [ebp - 0x1d0]
test ebx, ebx
je 0x4e5835
cmp ecx, 0x34
je 0x4e5778
cmp ecx, 0x1c
jl 0x4e5785
cmp ecx, 0x2c
jg 0x4e5785
mov eax, 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], eax
jmp 0x4e578c
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x378]
test eax, eax
jle 0x4e57d8
mov dword [ebp - 0x1b0], edi
xor ecx, ecx
lea edi, [ecx*8]
lea edi, [edi + ecx*4]
mov edx, dword [ebp + edi - 0x36c]
mov edi, dword [ebp + edi - 0x368]
mov dword [ebp + ecx*4 - 0xb4], edx
mov dword [ebp + ecx*4 - 0x130], edi
mov dword [ebp + ecx*4 - 0x1ac], edx
inc ecx
cmp ecx, eax
jl 0x4e579e
mov edi, dword [ebp - 0x1b0]
test eax, eax
mov ecx, 0
jle 0x4e580a
mov dword [ebp - 0x1b0], edi
xor edx, edx
mov edi, dword [ebp + edx*4 - 0x1ac]
sub edi, dword [ebp + edx*4 - 0xb4]
imul edi, dword [ebp + edx*4 - 0x130]
inc edx
add ecx, edi
cmp edx, eax
jl 0x4e57e7
mov edi, dword [ebp - 0x1b0]
add ecx, dword [ebp - 0x374]
lea eax, [ebp - 0x37c]
push eax
mov dword [ebp - 0x1d4], ecx
lea edx, [ebp - 0x1ac]
push edx
push 0
call fcn.0050bf90
add esp, 0xc
jmp 0x4e58c4
xor ebx, ebx
mov dword [ebp - 0x18], 1
jmp 0x4e58db
cmp eax, 6
je 0x4e584b
cmp eax, 5
jne 0x4e58a2
movzx ecx, byte [edi + 0x168]
and ecx, 2
mov eax, dword [ebp - 0x1c8]
shr ecx, 1
mov ebx, dword [ebp - 0x1d0]
test eax, eax
mov dword [ebp - 0x1d8], eax
je 0x4e5880
mov eax, ebx
cdq
mov ebx, dword [ebp - 0x1d8]
idiv ebx
mov ebx, eax
test ecx, ecx
jne 0x4e588b
jmp 0x4e58d5
test ecx, ecx
jne 0x4e5889
mov ebx, 0
je 0x4e58d5
test ebx, ebx
jne 0x4e58c4
mov dword [edi + 0x128], 1
mov dword [ebp - 0x18], 1
jmp 0x4e58db
cmp ecx, 0x34
je 0x4e58b1
cmp ecx, 0x1c
jl 0x4e58bf
cmp ecx, 0x2c
jg 0x4e58bf
mov dword [ebp - 0x20], 1
mov ebx, 2
jmp 0x4e58c4
mov ebx, 1
mov dword [edi + 0x128], 0
or byte [edi + 0x171], 0x80
cmp dword [ebp - 0x18], 0
je 0x4e58f7
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x4e58ee
mov dword [esi + 0xc], 2
jmp 0x4e4e19
inc eax
mov dword [esi + 0xc], eax
jmp 0x4e4e19
mov eax, dword [esi]
and byte [esi + 0x4f], 0xf7
movsx ecx, byte [esi + 0x48]
movzx edx, byte [eax + 0x16e]
test edx, 0x80
je 0x4e5933
mov eax, dword [ecx*4 + 0x5f20e0]
test eax, eax
je 0x4e5933
mov edx, dword [ebp - 0x1cc]
movsx eax, byte [eax + edx]
test eax, eax
je 0x4e5933
mov dword [ebp - 0x1cc], eax
movsx ecx, byte [esi + 0x48]
lea eax, [ecx - 0x13]
cmp eax, 0x20
ja case.default.0x4e593f
jmp dword [eax*4 + 0x5ecfc0]
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x4e5985
movzx eax, byte [esi + 0x50]
or eax, 2
mov byte [esi + 0x50], al
mov edx, dword [ebp - 0x1cc]
mov dword [ebp - 0x2c], eax
movsx edx, word [edx*2 + 0x5f1f80]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x4e6707
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e5dac
jmp 0x4e5ddb
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e5dac
movzx eax, byte [esi + 0x50]
mov dword [ebp - 0x2c], eax
jmp 0x4e5ddb
mov eax, dword [ebp - 0x1cc]
movsx edx, word [eax*2 + 0x5f1f80]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x4e672e
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e5dac
jmp 0x4e5991
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x4e5a03
movzx eax, byte [esi + 0x50]
or eax, 2
mov byte [esi + 0x50], al
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1cc]
movsx edx, byte [eax + 0x5f234d]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x4e6755
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e5dac
jmp 0x4e5ddb
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e5dac
jmp 0x4e5991
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x4e5a46
movzx eax, byte [esi + 0x50]
add ecx, 0xffffffd8
or eax, 2
mov byte [esi + 0x50], al
cmp ecx, 0x20
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1cc]
movsx edx, byte [eax + 0x5f233b]
mov dword [esi + 0x38], edx
jb 0x4e5dac
jmp 0x4e5ddb
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e5dac
jmp 0x4e5991
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x4e5aeb
or byte [esi + 0x51], 4
mov eax, dword [ebp - 0x1cc]
cmp eax, 0x19
mov dword [ebp - 0x3cc], eax
jge 0x4e677c
cmp dword [ebp - 0x3cc], 5
jl 0x4e5abb
cmp dword [ebp - 0x3cc], 0x11
jg 0x4e5abb
movzx eax, byte [esi + 0x50]
add ecx, 0xffffffd8
or eax, 2
mov byte [esi + 0x50], al
cmp ecx, 0x20
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1cc]
movsx edx, byte [eax + 0x5f233b]
mov dword [esi + 0x38], edx
jb 0x4e5dac
jmp 0x4e5ddb
cmp dword [ebp - 0x3cc], 0x39
je 0x4e5ad1
cmp dword [ebp - 0x3cc], 0x38
jne 0x4e5ce6
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1c8]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x4e5dac
jmp 0x4e5991
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e5dac
jmp 0x4e5991
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x4e5b4e
or byte [esi + 0x51], 4
mov eax, dword [ebp - 0x1cc]
cmp eax, 5
jl 0x4e5b33
cmp eax, 0x11
jg 0x4e5b33
or byte [esi + 0x50], 2
mov eax, dword [ebp - 0x1cc]
movsx edx, byte [eax + 0x5f233b]
mov dword [esi + 0x38], edx
mov eax, dword [ebp - 0x1cc]
jmp 0x4e5b54
cmp eax, 0x39
je 0x4e5b3d
cmp eax, 0x38
jne 0x4e5b54
mov edx, dword [ebp - 0x1c8]
mov dword [esi + 0x38], edx
mov eax, dword [ebp - 0x1cc]
jmp 0x4e5b54
mov eax, dword [ebp - 0x1cc]
cmp eax, 0x19
jge case.0x4e593f.30
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e5dac
jmp 0x4e5991
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x4e5ba6
movzx eax, byte [esi + 0x50]
add ecx, 0xffffffd8
or eax, 2
mov byte [esi + 0x50], al
mov edx, dword [ebp - 0x1cc]
mov dword [ebp - 0x2c], eax
movsx eax, word [esi + 0x40]
movsx edx, word [edx*8 + 0x5f1f3a]
add edx, eax
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x4e5dac
jmp 0x4e5ddb
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e5dac
jmp 0x4e5991
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e5dac
jmp 0x4e5dd1
mov eax, dword [ebp - 0x1cc]
movsx edx, byte [eax + 0x5f234d]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x4e67e0
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e5dac
jmp 0x4e5991
mov eax, dword [ebp - 0x1cc]
cmp eax, 5
jl 0x4e5ce6
cmp eax, 0x11
jg 0x4e5ce6
add ecx, 0xffffffd8
mov edx, 2
mov dword [esi + 0x38], 2
cmp ecx, 0x20
jb 0x4e5dac
jmp 0x4e5991
mov eax, dword [ebp - 0x1cc]
cmp eax, 5
jl 0x4e5ce6
cmp eax, 0x11
jg 0x4e5ce6
add ecx, 0xffffffd8
movsx edx, byte [eax + 0x5f233b]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x4e5dac
jmp 0x4e5991
or byte [esi + 0x51], 4
mov eax, dword [ebp - 0x1cc]
cmp eax, 0x19
mov dword [ebp - 0x3c4], eax
jge 0x4e6807
cmp dword [ebp - 0x3c4], 5
jl 0x4e5ca0
cmp dword [ebp - 0x3c4], 0x11
jg 0x4e5ca0
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, byte [eax + 0x5f233b]
mov dword [esi + 0x38], edx
jb 0x4e5dac
jmp 0x4e5991
cmp dword [ebp - 0x3c4], 0x39
je 0x4e5cb2
cmp dword [ebp - 0x3c4], 0x38
jne 0x4e5ce6
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1c8]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x4e5dac
jmp 0x4e5991
mov eax, dword [ebp - 0x1cc]
cmp eax, 0x19
mov dword [ebp - 0x1e4], eax
jl 0x4e5ce6
cmp dword [ebp - 0x1e4], 0x34
jle 0x4e5d52
add ecx, 0xffffffd8
mov eax, 0x3d
cmp ecx, 0x20
jb 0x4e5dae
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4e6854
test byte [edx + 0x44], 2
je 0x4e5d2d
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e5d20
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, word [eax*8 + 0x5f1f38]
mov dword [ebp - 0x380], edx
mov dword [esi + 0x38], edx
movzx edx, word [eax*8 + 0x5f1f3c]
movzx eax, word [eax*8 + 0x5f1f3e]
mov word [esi + 0x40], dx
mov word [esi + 0x42], ax
mov edx, dword [ebp - 0x380]
jb 0x4e5dac
jmp 0x4e5991
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1c8]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x4e5dac
jmp 0x4e5991
add ecx, 0xffffffd8
cmp ecx, 0x20
jae 0x4e5dd1
xor eax, eax
mov edx, 1
shl edx, cl
test dl, 0x25
je 0x4e5dc9
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x38]
cmp ecx, edx
jge 0x4e5dc6
mov ecx, edx
mov dword [esi + 0x38], ecx
test eax, eax
jne 0x4e5cf7
movzx eax, byte [esi + 0x50]
mov edx, dword [esi + 0x38]
mov dword [ebp - 0x2c], eax
test byte [ebp - 0x2c], 2
je 0x4e5e97
test edx, edx
jle 0x4e5df7
movsx eax, word [esi + 0x40]
cmp eax, edx
jle 0x4e5df7
lea edx, [eax + 1]
mov dword [esi + 0x38], edx
cmp edx, 0x40
ja 0x4e5e0e
mov dword [ebp - 0x24], 0
lea eax, [ebp - 0x3c0]
mov dword [ebp - 0x28], eax
jmp 0x4e5e2b
lea eax, [ebp - 0x28]
push eax
push 0
push edx
call fcn.00505140
add esp, 0xc
test eax, eax
jne 0x4e68df
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
push dword [esi + 0x38]
push 0x20
push eax
call fcn.005a3600
push dword [ebp - 0x28]
push esi
lea eax, [ebp - 0x1d4]
push eax
call fcn.00510880
add esp, 0x18
test eax, eax
je 0x4e5e66
cmp eax, 0x3f
jne 0x4e686e
test byte [edi + 0x16f], 8
jne 0x4e5e66
mov dword [esi + 0x10], 0x3f
mov edx, dword [esi + 0x38]
test edx, edx
je 0x4e5e82
mov eax, dword [ebp - 0x28]
cmp byte [eax], 0x20
jne 0x4e5e97
inc eax
mov dword [ebp - 0x28], eax
mov edx, dword [esi + 0x38]
dec edx
mov dword [esi + 0x38], edx
jne 0x4e5e6d
movsx eax, word [esi + 0x40]
test eax, eax
jne 0x4e5e97
mov dword [esi + 0x38], 1
dec dword [ebp - 0x28]
mov edx, dword [esi + 0x38]
mov ecx, dword [edi + 0x3c]
mov dword [ebp - 0x30], ecx
mov eax, dword [edi + 0x44]
mov dword [ebp - 0x34], eax
add ecx, edx
cmp eax, ecx
jb 0x4e69e8
movzx eax, byte [esi + 0x50]
test al, 2
je 0x4e5f21
cmp dword [esi + 0x38], 0
je 0x4e5efe
mov edx, dword [ebp - 0x28]
mov ecx, dword [edi + 0x3c]
movzx eax, byte [edx]
mov byte [ecx], al
inc dword [edi + 0x3c]
inc dword [ebp - 0x28]
mov eax, dword [esi + 0x38]
dec eax
je 0x4e6950
mov dword [esi + 0x38], eax
mov eax, dword [ebp - 0x28]
movsx eax, byte [eax]
cmp eax, 0x20
je 0x4e6950
mov edx, dword [edi + 0x3c]
mov byte [edx], al
inc dword [edi + 0x3c]
inc dword [ebp - 0x28]
mov eax, dword [esi + 0x38]
dec eax
jne 0x4e5ed6
jmp 0x4e6950
and eax, 0xfffffffd
mov byte [esi + 0x50], al
mov dword [esi + 0x38], 0
cmp dword [ebp - 0x24], 0
je 0x4e5f1c
push dword [ebp - 0x24]
call fcn.00505200
add esp, 4
mov edx, dword [edi + 0x3c]
jmp 0x4e5f45
push dword [edi + 0x3c]
push esi
lea eax, [ebp - 0x1d4]
push eax
call fcn.00510880
add esp, 0xc
test eax, eax
jne 0x4e6959
mov edx, dword [edi + 0x3c]
add edx, dword [esi + 0x38]
mov dword [edi + 0x3c], edx
mov eax, dword [edi + 0x4c]
cmp edx, eax
ja 0x4e5f4e
mov edx, eax
mov dword [edi + 0x4c], edx
jmp 0x4e4e19
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4e5fad
test byte [edx + 0x44], 2
je 0x4e5f88
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e5f7b
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x20], 0
jne 0x4e4e59
cmp ebx, 1
jg 0x4e4e59
or eax, 0x40
jmp 0x4e4e5c
cmp dword [ebp - 0x20], 0
jne 0x4e4e4d
cmp ebx, 1
jg 0x4e4e4d
or eax, 0x20
jmp 0x4e4e59
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x4e6008
inc eax
mov dword [esi + 0xc], eax
xor eax, eax
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x1ec], ebx
xor ecx, ecx
mov ebx, dword [ebp - 0x1c0]
movzx edx, byte [ecx + ebx]
inc ecx
mov byte [eax], dl
mov eax, dword [edi + 0x3c]
inc eax
mov dword [edi + 0x3c], eax
cmp ecx, dword [esi + 0x38]
jl 0x4e6025
mov ebx, dword [ebp - 0x1ec]
jmp 0x4e4f26
mov edx, ecx
sub edx, dword [ebp - 0x1bc]
cmp edx, 0x200
mov eax, dword [edi + 0xf8]
jge 0x4e605e
mov edx, 0x200
shr eax, 3
cmp edx, eax
jge 0x4e6067
mov edx, eax
push edx
push edi
call fcn.0050bd90
add esp, 8
test eax, eax
jne 0x4e6086
mov edx, dword [esi + 0x38]
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x1b4], edx
jmp 0x4e4f19
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4e60ec
test byte [eax + 0x44], 2
je 0x4e60c2
mov edx, 0x42
mov dword [eax + 0x38], edx
mov eax, dword [edi + 0x18]
mov dword [eax + 0x3c], edx
mov edx, dword [edi + 0x64]
test edx, edx
je 0x4e60b0
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, 0x42
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, 0x42
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
mov eax, 0x42
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x38]
movsx edx, byte [ecx + 5]
cmp edx, 0x20
je 0x4e6135
cmp edx, 0x2b
jne 0x4e6127
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x16d]
and eax, 0xffffffbf
mov byte [edi + 0x16d], al
jmp 0x4e4f89
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x16d]
jmp 0x4e6127
push edi
mov eax, 0x2c
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4e61c7
test byte [eax + 0x44], 2
je 0x4e619d
mov edx, 0x26
mov dword [eax + 0x38], edx
mov eax, dword [edi + 0x18]
mov dword [eax + 0x3c], edx
mov edx, dword [edi + 0x64]
test edx, edx
je 0x4e618b
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, 0x26
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, 0x26
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
mov eax, 0x26
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4e623d
test byte [edx + 0x44], 2
je 0x4e6218
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e620b
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
movsx eax, byte [eax]
cmp eax, 1
jne 0x4e6470
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x4e6279
movzx eax, byte [eax + 0x1e]
test eax, eax
jne 0x4e635d
cmp dword [edi + 0x128], 0
jne 0x4e6291
cmp dword [ebp - 0x18], 0
je 0x4e62c1
cmp dword [edi + 0x130], 0
je 0x4e62c1
movzx eax, byte [edi + 0x171]
test eax, 0x80
mov dword [edi + 0x128], 0
je 0x4e62b4
and eax, 0x7f
mov byte [edi + 0x171], al
jmp 0x4e62c1
cmp dword [edi + 0x130], 0
jne 0x4e635d
movzx eax, byte [edi + 0x16d]
test al, 0x40
je 0x4e62d9
cmp byte [edi + 0x156], 1
je 0x4e64fd
push edi
call fcn.00508d70
add esp, 4
test eax, eax
je 0x4e6341
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4e64af
test byte [edx + 0x44], 2
je 0x4e631c
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e630f
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
add dword [edi + 0x98], 1
adc dword [edi + 0x9c], 0
and byte [edi + 0x16f], 0xfb
and byte [edi + 0x171], 0x7f
movzx eax, byte [esi + 0x4f]
test al, 2
je 0x4e63d5
push dword [esi + 4]
and eax, 0xfffffffd
mov byte [esi + 0x4f], al
call fcn.00505200
add esp, 4
test eax, eax
je 0x4e63d5
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4e64c9
test byte [edx + 0x44], 2
je 0x4e63b0
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e63a3
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x10]
test edx, edx
je 0x4e643d
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4e64e3
test byte [eax + 0x44], 2
je 0x4e6418
mov dword [eax + 0x38], edx
mov edx, dword [edi + 0x18]
mov eax, dword [esi + 0x10]
mov dword [edx + 0x3c], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x4e6408
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, dword [esi + 0x10]
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edx
movzx eax, byte [edi + 0x16c]
push edx
and eax, 7
push eax
push 0xffffffffffffffff
push edi
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push dword [edi + 0x100]
and byte [edi + 0x16c], 0xdc
and byte [edi + 0x16e], 0xf7
call fcn.00505780
add esp, 4
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov dword [edx + 4], 0
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x4e648b
xor eax, eax
mov dword [esi + 0xc], 2
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push ebx
lea eax, [ebp + 0x10]
push eax
lea edx, [ebp + 0xc]
push edx
call fcn.005104b0
add esp, 0xc
cmp eax, 2
je 0x4e6475
cmp eax, 1
jne 0x4e4e19
jmp 0x4e6266
push edi
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
push edx
push edx
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x38]
movsx edx, byte [ecx + 5]
cmp edx, 0x20
je 0x4e6527
cmp edx, 0x2b
jne 0x4e6519
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x16d]
and eax, 0xffffffbf
mov byte [edi + 0x16d], al
jmp 0x4e62d9
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x16d]
jmp 0x4e6519
push edi
mov eax, 0x69
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
cmp byte [eax], 2
jne 0x4e6266
cmp ebx, 2
jge 0x4e6266
xor eax, eax
mov dword [esi + 0xc], 2
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
leave
ret
mov ecx, dword [edi + 0x38]
movsx eax, byte [ecx + 5]
cmp eax, 0x20
je 0x4e65b2
cmp eax, 0x2b
jne 0x4e659e
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x16d]
mov dword [ebp - 0x1e0], eax
mov eax, dword [ebp - 0x1e0]
and eax, 0xffffffbf
mov byte [edi + 0x16d], al
jmp 0x4e5325
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x16d]
mov dword [ebp - 0x1e0], eax
jmp 0x4e659e
push edi
mov eax, 0x2c
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4e664a
test byte [eax + 0x44], 2
je 0x4e6620
mov edx, 0x26
mov dword [eax + 0x38], edx
mov eax, dword [edi + 0x18]
mov dword [eax + 0x3c], edx
mov edx, dword [edi + 0x64]
test edx, edx
je 0x4e660e
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, 0x26
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, 0x26
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
mov eax, 0x26
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4e66c0
test byte [edx + 0x44], 2
je 0x4e669b
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e668e
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
cmp ebx, 2
jge 0x4e52bd
xor eax, eax
mov dword [esi + 0xc], 2
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
cmp ebx, 2
jl 0x4e6266
jmp 0x4e52bd
mov edx, dword [ebp - 0x1c8]
add ecx, 0xffffffd8
shl edx, 3
cmp edx, 0x11
jge 0x4e671d
mov edx, 0x11
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x4e5dac
jmp 0x4e5ddb
mov edx, dword [ebp - 0x1c8]
add ecx, 0xffffffd8
shl edx, 3
cmp edx, 0x11
jge 0x4e6744
mov edx, 0x11
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x4e5dac
jmp 0x4e5991
mov eax, dword [ebp - 0x1c8]
add ecx, 0xffffffd8
lea edx, [eax + eax*2]
cmp edx, 7
jge 0x4e676b
mov edx, 7
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x4e5dac
jmp 0x4e5ddb
cmp dword [ebp - 0x3cc], 0x34
jg 0x4e5abb
mov edx, eax
movzx eax, byte [esi + 0x50]
or eax, 2
movsx edx, word [edx*8 + 0x5f1f38]
mov dword [ebp - 0x2c], eax
mov byte [esi + 0x50], al
movsx eax, word [esi + 0x40]
test eax, eax
mov dword [esi + 0x38], edx
jne 0x4e67bd
mov eax, dword [ebp - 0x3cc]
movzx eax, word [eax*8 + 0x5f1f3c]
mov word [esi + 0x40], ax
mov eax, dword [ebp - 0x3cc]
add ecx, 0xffffffd8
cmp ecx, 0x20
movzx eax, word [eax*8 + 0x5f1f3e]
mov word [esi + 0x42], ax
jb 0x4e5dac
jmp 0x4e5ddb
mov eax, dword [ebp - 0x1c8]
add ecx, 0xffffffd8
lea edx, [eax + eax*2]
cmp edx, 7
jge 0x4e67f6
mov edx, 7
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x4e5dac
jmp 0x4e5991
cmp dword [ebp - 0x3c4], 0x34
jg 0x4e5ca0
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, word [eax*8 + 0x5f1f38]
mov dword [ebp - 0x380], edx
mov dword [esi + 0x38], edx
movzx edx, word [eax*8 + 0x5f1f3c]
movzx eax, word [eax*8 + 0x5f1f3e]
mov word [esi + 0x40], dx
mov word [esi + 0x42], ax
mov edx, dword [ebp - 0x380]
jb 0x4e5dac
jmp 0x4e5991
push edi
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4e68c5
test byte [edx + 0x44], 2
je 0x4e68a0
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e6893
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4e6936
test byte [edx + 0x44], 2
je 0x4e6911
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e6904
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
movzx eax, byte [esi + 0x50]
jmp 0x4e5efe
cmp eax, 0x3f
jne 0x4e6977
test byte [edi + 0x16f], 8
jne 0x4e5f3c
mov dword [esi + 0x10], 0x3f
jmp 0x4e5f3c
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4e69ce
test byte [edx + 0x44], 2
je 0x4e69a9
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e699c
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x34]
add eax, edx
cmp eax, 0x200
mov edx, dword [edi + 0xf8]
jge 0x4e6a02
mov eax, 0x200
shr edx, 3
cmp eax, edx
jge 0x4e6a0b
mov eax, edx
push eax
push edi
call fcn.0050bd90
add esp, 8
test eax, eax
je 0x4e5ead
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4e6a83
test byte [eax + 0x44], 2
je 0x4e6a59
mov edx, 0x42
mov dword [eax + 0x38], edx
mov eax, dword [edi + 0x18]
mov dword [eax + 0x3c], edx
mov edx, dword [edi + 0x64]
test edx, edx
je 0x4e6a47
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, 0x42
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, 0x42
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
mov eax, 0x42
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4e6af9
test byte [edx + 0x44], 2
je 0x4e6ad4
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e6ac7
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4e6b6a
test byte [edx + 0x44], 2
je 0x4e6b45
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e6b38
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0050ffa0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.004d9080
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x20], 0
jne 0x4e4eb3
cmp ebx, 1
jg 0x4e4eb3
or eax, 0x40
jmp 0x4e4eb6
cmp dword [ebp - 0x20], 0
jne 0x4e4ea3
cmp ebx, 1
jg 0x4e4ea3
movzx eax, byte [esi + 0x4f]
or eax, 0x20
jmp 0x4e4eb3
xor eax, eax
mov dword [esi + 0xc], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0xc]
test edx, edx
mov ebx, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
lea ecx, [edx + 1]
jne 0x4e6be5
mov ecx, 2
xor eax, eax
mov dword [esi + 0xc], ecx
mov esi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
xor eax, eax
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret