Function at 0x4e5f63
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3bc
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 0x4e707e
xor eax, eax
mov ebx, 1
mov esi, dword [edi + 0x58]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov edx, dword [esi + 0xc]
cmp edx, 1
jle 0x4e53e4
lea eax, [edx - 1]
mov dword [ebp - 4], eax
mov dword [esi + 0xc], eax
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x4e542a
test al, 0x20
je 0x4e542a
mov ecx, dword [ebp + 0xc]
movsx ecx, byte [ecx]
cmp ecx, 2
je 0x4e64f9
and eax, 0xffffffdf
cmp ecx, 1
je 0x4e64de
and eax, 0xffffffbf
push edi
mov byte [esi + 0x4f], al
mov dword [ebp - 0x38], edx
call fcn.00505c30
mov edx, dword [ebp - 0x38]
add esp, 4
test eax, eax
jne 0x4e646d
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x4e53d6
test al, 0x20
jne 0x4e704b
mov edx, dword [ebp - 4]
mov dword [esi + 0xc], edx
or eax, 0x20
mov byte [esi + 0x4f], al
jmp 0x4e542a
mov eax, dword [ebp + 0xc]
movsx edx, byte [eax]
cmp edx, 2
je 0x4e702c
movzx eax, byte [esi + 0x4f]
and eax, 0xffffffdf
cmp edx, 1
je 0x4e7011
and eax, 0xffffffbf
push edi
mov byte [esi + 0x4f], al
call fcn.00505c30
add esp, 4
test eax, eax
jne 0x4e6fa0
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x4e542a
test al, 0x20
jne 0x4e6514
movsx edx, byte [esi + 0x48]
add edx, 0xfffffffe
cmp edx, 0x1a
ja case.0x4e5441.3
mov edx, dword [edx*4 + 0x5604a0]
jmp edx
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
jae 0x4e54a9
mov edx, ecx
sub edx, dword [ebp - 0x1bc]
cmp edx, 0x200
mov eax, dword [edi + 0xf8]
jge 0x4e5482
mov edx, 0x200
shr eax, 3
cmp edx, eax
jge 0x4e548b
mov edx, eax
push edx
push edi
call fcn.00501570
add esp, 8
test eax, eax
jne 0x4e655a
mov edx, dword [esi + 0x38]
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x1b4], edx
cmp dword [ebp - 0x1b4], 0
jg 0x4e652e
mov edx, dword [edi + 0x4c]
cmp eax, edx
mov dword [edi + 0x128], 0
ja 0x4e54c9
mov eax, edx
mov dword [edi + 0x4c], eax
or byte [edi + 0x171], 0x80
jmp 0x4e5369
mov edx, dword [edi + 0x7c]
test edx, edx
je 0x4e54f7
movzx eax, byte [edx + 0x1e]
test eax, eax
je 0x4e54f7
mov byte [edx + 0x1e], 0
mov dword [ebp - 0x1b8], 1
jmp 0x4e5501
mov dword [ebp - 0x1b8], 0
movzx eax, byte [edi + 0x16d]
test al, 0x40
je 0x4e5519
cmp byte [edi + 0x156], 1
je 0x4e65df
push edi
call fcn.004fe7c0
add esp, 4
test eax, eax
jne 0x4e66ba
add dword [edi + 0x98], 1
push 0
push edi
adc dword [edi + 0x9c], 0
and byte [edi + 0x16f], 0xfb
call fcn.004ffcb0
add esp, 8
test eax, eax
jne 0x4e6635
movsx eax, byte [edi + 0x154]
mov dword [ebp - 0x1c4], eax
lea eax, [eax - 1]
cmp eax, 7
ja case.default.0x4e5572
mov eax, dword [eax*4 + 0x560520]
jmp eax
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x4e5580
mov dword [edi + 0x3c], ecx
jmp 0x4e5586
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 0x4e56b6
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4e6616
test byte [eax + 0x44], 2
je 0x4e55df
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 0x4e55cd
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.00500a40
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 0x4e5615
add ecx, 4
jmp 0x4e561b
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 0x4e56b6
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x4e5643
mov dword [edi + 0x3c], ecx
jmp 0x4e5649
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 - 0x1ec], eax
lea eax, [ecx + eax]
je 0x4e567f
test byte [edi + 0x16a], 0x40
je 0x4e567f
test byte [edi + 0x16b], 8
je 0x4e567f
cmp dword [ebp - 0x1c4], 1
je 0x4e5684
mov dword [edi + 0x44], eax
jmp 0x4e56b6
mov eax, dword [ebp - 0x1ec]
lea eax, [ecx + eax - 2]
mov dword [edi + 0x44], eax
jmp 0x4e56b6
push 0x464
push str.for_wseq_fmt.c
push 2
push 8
call fcn.004fc9b0
add esp, 0x10
movzx edx, byte [edi + 0x168]
mov ecx, dword [edi + 0x3c]
mov eax, dword [edi + 0x44]
test dl, 4
je 0x4e56d6
test byte [edi + 0x16a], 0x40
je 0x4e56d6
test byte [edi + 0x16b], 8
je 0x4e56d6
cmp byte [edi + 0x154], 1
je 0x4e5723
movsx edx, byte [edi + 0x156]
cmp edx, 2
jne 0x4e56fe
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x4e5723
cmp edx, 6
je 0x4e5723
cmp edx, 8
je 0x4e5723
dec eax
mov dword [edi + 0x44], eax
jmp 0x4e5723
cmp edx, 1
jne 0x4e5723
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x4e571d
cmp edx, 6
je 0x4e571d
cmp edx, 8
je 0x4e571d
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.0053bad0
add esp, 0xc
mov dword [edi + 0x128], 0
cmp dword [ebp - 0x1b8], 0
je 0x4e5369
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
jmp 0x4e5369
cmp ebx, 2
jge 0x4e5369
jmp 0x4e672b
test byte [edi + 0x168], 4
je 0x4e5783
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
mov edx, dword [edi + 0x7c]
mov dword [edx + 0xc], edi
jmp 0x4e5369
or byte [edi + 0x16d], 0x40
jmp 0x4e5369
mov edx, dword [ebp + 0xc]
movsx edx, byte [edx]
cmp edx, 1
je 0x4e6bbb
cmp edx, 2
je 0x4e6b9c
test byte [esi + 0x4e], 0x20
jne 0x4e5852
test byte [edi + 0x168], 2
je 0x4e57e8
test eax, 0x80
je 0x4e57e8
push ebx
lea eax, [ebp - 0x36c]
push eax
lea edx, [ebp - 0x1d8]
push edx
lea ecx, [ebp + 0x10]
push ecx
lea eax, [ebp + 0xc]
push eax
call fcn.005014e0
add esp, 0x14
test eax, eax
jne 0x4e6a27
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4e6a08
test byte [eax + 0x44], 2
je 0x4e5828
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 0x4e5816
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.00500a40
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 0x4e5871
movzx eax, byte [edx + 0x1e]
test eax, eax
je 0x4e5871
mov byte [edx + 0x1e], 0
mov dword [ebp - 0x1c8], 1
jmp 0x4e587b
mov dword [ebp - 0x1c8], 0
cmp dword [edi + 0x128], 0
je 0x4e58a9
movzx eax, byte [edi + 0x171]
test eax, 0x80
mov dword [edi + 0x128], 0
jne 0x4e58a9
cmp dword [edi + 0x130], 0
jne 0x4e5af4
movzx eax, byte [edi + 0x16d]
test al, 0x40
je 0x4e58c1
cmp byte [edi + 0x156], 1
je 0x4e6a50
push edi
call fcn.004fe7c0
add esp, 4
test eax, eax
jne 0x4e6b2b
add dword [edi + 0x98], 1
push 0
push edi
adc dword [edi + 0x9c], 0
and byte [edi + 0x16f], 0xfb
call fcn.004ffcb0
add esp, 8
test eax, eax
jne 0x4e6aa6
movsx eax, byte [edi + 0x154]
mov dword [ebp - 0x1e4], eax
lea eax, [eax - 1]
cmp eax, 7
ja case.default.0x4e591a
mov eax, dword [eax*4 + 0x560540]
jmp eax
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x4e5928
mov dword [edi + 0x3c], ecx
jmp 0x4e592e
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 0x4e5a5e
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4e6a87
test byte [eax + 0x44], 2
je 0x4e5987
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 0x4e5975
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.00500a40
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 0x4e59bd
add ecx, 4
jmp 0x4e59c3
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 0x4e5a5e
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x4e59eb
mov dword [edi + 0x3c], ecx
jmp 0x4e59f1
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 - 0x3b8], eax
lea eax, [ecx + eax]
je 0x4e5a27
test byte [edi + 0x16a], 0x40
je 0x4e5a27
test byte [edi + 0x16b], 8
je 0x4e5a27
cmp dword [ebp - 0x1e4], 1
je 0x4e5a2c
mov dword [edi + 0x44], eax
jmp 0x4e5a5e
mov eax, dword [ebp - 0x3b8]
lea eax, [ecx + eax - 2]
mov dword [edi + 0x44], eax
jmp 0x4e5a5e
push 0x534
push str.for_wseq_fmt.c
push 2
push 8
call fcn.004fc9b0
add esp, 0x10
movzx edx, byte [edi + 0x168]
mov ecx, dword [edi + 0x3c]
mov eax, dword [edi + 0x44]
test dl, 4
je 0x4e5a7e
test byte [edi + 0x16a], 0x40
je 0x4e5a7e
test byte [edi + 0x16b], 8
je 0x4e5a7e
cmp byte [edi + 0x154], 1
je 0x4e5acb
movsx edx, byte [edi + 0x156]
cmp edx, 2
jne 0x4e5aa6
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x4e5acb
cmp edx, 6
je 0x4e5acb
cmp edx, 8
je 0x4e5acb
dec eax
mov dword [edi + 0x44], eax
jmp 0x4e5acb
cmp edx, 1
jne 0x4e5acb
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x4e5ac5
cmp edx, 6
je 0x4e5ac5
cmp edx, 8
je 0x4e5ac5
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], 0
call fcn.0053bad0
add esp, 0xc
mov dword [edi + 0x130], 1
and byte [edi + 0x171], 0x7f
cmp dword [ebp - 0x1c8], 0
je 0x4e5b04
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
mov eax, dword [edi + 0x3c]
mov dword [edi + 0x4c], eax
jmp 0x4e5369
cmp ebx, 1
jle 0x4e5beb
mov eax, dword [ebp - 0x36c]
cmp eax, 7
je 0x4e5b2c
cmp eax, 8
jne 0x4e5bb9
cmp dword [ebp - 0x20], 0
je 0x4e5b4b
mov eax, dword [ebp - 0x1cc]
dec ebx
add dword [ebp - 0x1d8], eax
mov dword [ebp - 0x20], 0
jmp 0x4e5ddf
cmp dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x368]
je 0x4e5b5f
mov eax, 1
xor ecx, ecx
mov dword [ebp - 0x20], eax
test edx, edx
jle 0x4e5b93
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 0x4e5b70
mov edi, dword [ebp - 0x1b0]
add ecx, dword [ebp - 0x364]
lea eax, [ebp - 0x36c]
push eax
mov dword [ebp - 0x1d8], ecx
lea edx, [ebp - 0x1ac]
push edx
push 0
call fcn.00501790
add esp, 0xc
jmp 0x4e5bd4
mov edx, dword [ebp - 0x20]
test edx, edx
mov eax, dword [ebp - 0x1cc]
je 0x4e5bcb
mov edx, 0
add dword [ebp - 0x1d8], eax
mov dword [ebp - 0x20], edx
mov dword [edi + 0x128], 0
dec ebx
or byte [edi + 0x171], 0x80
jmp 0x4e5ddf
lea eax, [ebp - 0x36c]
push eax
lea edx, [ebp - 0x1d8]
push edx
lea ecx, [ebp + 0x10]
push ecx
lea ebx, [ebp + 0xc]
push ebx
call fcn.00501270
add esp, 0x10
test eax, eax
jne 0x4e6f2f
mov ecx, dword [ebp - 0x1d0]
cmp ecx, 2
je 0x4e705d
cmp ecx, 1
je 0x4e673a
mov eax, dword [ebp - 0x36c]
cmp eax, 7
jl 0x4e5d4b
cmp eax, 8
jg 0x4e5d4b
mov ebx, dword [ebp - 0x1cc]
test ebx, ebx
je 0x4e5c58
mov eax, dword [ebp - 0x1d4]
cdq
idiv ebx
mov ebx, eax
jmp 0x4e5c6b
test byte [edi + 0x168], 2
je 0x4e5d3d
mov ebx, dword [ebp - 0x1d4]
test ebx, ebx
je 0x4e5d3f
cmp ecx, 0x34
je 0x4e5c82
cmp ecx, 0x1c
jl 0x4e5c8f
cmp ecx, 0x2c
jg 0x4e5c8f
mov eax, 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], eax
jmp 0x4e5c96
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x368]
test eax, eax
jle 0x4e5ce2
mov dword [ebp - 0x1b0], edi
xor ecx, ecx
lea edi, [ecx*8]
lea edi, [edi + ecx*4]
mov edx, dword [ebp + edi - 0x35c]
mov edi, dword [ebp + edi - 0x358]
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 0x4e5ca8
mov edi, dword [ebp - 0x1b0]
test eax, eax
mov ecx, 0
jle 0x4e5d14
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 0x4e5cf1
mov edi, dword [ebp - 0x1b0]
add ecx, dword [ebp - 0x364]
lea eax, [ebp - 0x36c]
push eax
mov dword [ebp - 0x1d8], ecx
lea edx, [ebp - 0x1ac]
push edx
push 0
call fcn.00501790
add esp, 0xc
jmp 0x4e5dce
xor ebx, ebx
mov dword [ebp - 0x18], 1
jmp 0x4e5de5
cmp eax, 6
je 0x4e5d55
cmp eax, 5
jne 0x4e5dac
movzx ecx, byte [edi + 0x168]
and ecx, 2
mov eax, dword [ebp - 0x1cc]
shr ecx, 1
mov ebx, dword [ebp - 0x1d4]
test eax, eax
mov dword [ebp - 0x1dc], eax
je 0x4e5d8a
mov eax, ebx
cdq
mov ebx, dword [ebp - 0x1dc]
idiv ebx
mov ebx, eax
test ecx, ecx
jne 0x4e5d95
jmp 0x4e5ddf
test ecx, ecx
jne 0x4e5d93
mov ebx, 0
je 0x4e5ddf
test ebx, ebx
jne 0x4e5dce
mov dword [edi + 0x128], 1
mov dword [ebp - 0x18], 1
jmp 0x4e5de5
cmp ecx, 0x34
je 0x4e5dbb
cmp ecx, 0x1c
jl 0x4e5dc9
cmp ecx, 0x2c
jg 0x4e5dc9
mov dword [ebp - 0x20], 1
mov ebx, 2
jmp 0x4e5dce
mov ebx, 1
mov dword [edi + 0x128], 0
or byte [edi + 0x171], 0x80
cmp dword [ebp - 0x18], 0
je 0x4e5e01
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x4e5df8
mov dword [esi + 0xc], 2
jmp 0x4e5369
inc eax
mov dword [esi + 0xc], eax
jmp 0x4e5369
mov eax, dword [esi]
and byte [esi + 0x4f], 0xf7
movsx ecx, byte [esi + 0x48]
movzx edx, byte [eax + 0x16e]
test edx, 0x80
je 0x4e5e3d
mov eax, dword [ecx*4 + 0x5683a0]
test eax, eax
je 0x4e5e3d
mov edx, dword [ebp - 0x1d0]
movsx eax, byte [eax + edx]
test eax, eax
je 0x4e5e3d
mov dword [ebp - 0x1d0], eax
movsx ecx, byte [esi + 0x48]
lea eax, [ecx - 0x13]
cmp eax, 0x20
ja case.default.0x4e5e50
mov eax, dword [eax*4 + 0x560560]
jmp eax
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x4e5e91
movzx eax, byte [esi + 0x50]
or eax, 2
mov byte [esi + 0x50], al
mov edx, dword [ebp - 0x1d0]
mov dword [ebp - 0x2c], eax
movsx edx, word [edx*2 + 0x568240]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x4e6bc9
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e62a4
jmp 0x4e62d3
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e62a4
movzx eax, byte [esi + 0x50]
mov dword [ebp - 0x2c], eax
jmp 0x4e62d3
mov eax, dword [ebp - 0x1d0]
movsx edx, word [eax*2 + 0x568240]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x4e6bf0
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e62a4
jmp 0x4e5e9d
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x4e5f0f
movzx eax, byte [esi + 0x50]
or eax, 2
mov byte [esi + 0x50], al
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1d0]
movsx edx, byte [eax + 0x56860d]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x4e6c17
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e62a4
jmp 0x4e62d3
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e62a4
jmp 0x4e5e9d
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x4e5f52
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 - 0x1d0]
movsx edx, byte [eax + 0x5685fb]
mov dword [esi + 0x38], edx
jb 0x4e62a4
jmp 0x4e62d3
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e62a4
jmp 0x4e5e9d
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x4e5ff3
mov eax, dword [ebp - 0x1d0]
cmp eax, 0x19
mov dword [ebp - 0x3bc], eax
jge 0x4e6c3e
cmp dword [ebp - 0x3bc], 5
jl 0x4e5fc3
cmp dword [ebp - 0x3bc], 0x11
jg 0x4e5fc3
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 - 0x1d0]
movsx edx, byte [eax + 0x5685fb]
mov dword [esi + 0x38], edx
jb 0x4e62a4
jmp 0x4e62d3
cmp dword [ebp - 0x3bc], 0x39
je 0x4e5fd9
cmp dword [ebp - 0x3bc], 0x38
jne 0x4e61de
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x4e62a4
jmp 0x4e5e9d
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e62a4
jmp 0x4e5e9d
mov edx, dword [esi + 0x38]
test edx, edx
mov eax, dword [ebp - 0x1d0]
jne 0x4e6050
cmp eax, 5
jl 0x4e6037
cmp eax, 0x11
jg 0x4e6037
or byte [esi + 0x50], 2
mov eax, dword [ebp - 0x1d0]
movsx edx, byte [eax + 0x5685fb]
mov dword [esi + 0x38], edx
mov eax, dword [ebp - 0x1d0]
jmp 0x4e6050
cmp eax, 0x39
je 0x4e6041
cmp eax, 0x38
jne 0x4e6050
mov edx, dword [ebp - 0x1cc]
mov dword [esi + 0x38], edx
mov eax, dword [ebp - 0x1d0]
cmp eax, 0x19
jge case.0x4e5e50.30
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e62a4
jmp 0x4e5e9d
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x4e60a2
movzx eax, byte [esi + 0x50]
add ecx, 0xffffffd8
or eax, 2
mov byte [esi + 0x50], al
mov edx, dword [ebp - 0x1d0]
mov dword [ebp - 0x2c], eax
movsx eax, word [esi + 0x40]
movsx edx, word [edx*8 + 0x5681fa]
add edx, eax
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x4e62a4
jmp 0x4e62d3
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e62a4
jmp 0x4e5e9d
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e62a4
jmp 0x4e62c9
mov eax, dword [ebp - 0x1d0]
movsx edx, byte [eax + 0x56860d]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x4e6ca2
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4e62a4
jmp 0x4e5e9d
mov eax, dword [ebp - 0x1d0]
cmp eax, 5
jl 0x4e61de
cmp eax, 0x11
jg 0x4e61de
add ecx, 0xffffffd8
mov edx, 2
mov dword [esi + 0x38], 2
cmp ecx, 0x20
jb 0x4e62a4
jmp 0x4e5e9d
mov eax, dword [ebp - 0x1d0]
cmp eax, 5
jl 0x4e61de
cmp eax, 0x11
jg 0x4e61de
add ecx, 0xffffffd8
movsx edx, byte [eax + 0x5685fb]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x4e62a4
jmp 0x4e5e9d
mov eax, dword [ebp - 0x1d0]
cmp eax, 0x19
mov dword [ebp - 0x3b4], eax
jge 0x4e6cc9
cmp dword [ebp - 0x3b4], 5
jl 0x4e6198
cmp dword [ebp - 0x3b4], 0x11
jg 0x4e6198
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, byte [eax + 0x5685fb]
mov dword [esi + 0x38], edx
jb 0x4e62a4
jmp 0x4e5e9d
cmp dword [ebp - 0x3b4], 0x39
je 0x4e61aa
cmp dword [ebp - 0x3b4], 0x38
jne 0x4e61de
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x4e62a4
jmp 0x4e5e9d
mov eax, dword [ebp - 0x1d0]
cmp eax, 0x19
mov dword [ebp - 0x1e0], eax
jl 0x4e61de
cmp dword [ebp - 0x1e0], 0x34
jle 0x4e624a
add ecx, 0xffffffd8
mov eax, 0x3d
cmp ecx, 0x20
jb 0x4e62a6
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4e6d16
test byte [edx + 0x44], 2
je 0x4e6225
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e6218
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.00500a40
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 + 0x5681f8]
mov dword [ebp - 0x370], edx
mov dword [esi + 0x38], edx
movzx edx, word [eax*8 + 0x5681fc]
movzx eax, word [eax*8 + 0x5681fe]
mov word [esi + 0x40], dx
mov word [esi + 0x42], ax
mov edx, dword [ebp - 0x370]
jb 0x4e62a4
jmp 0x4e5e9d
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x4e62a4
jmp 0x4e5e9d
add ecx, 0xffffffd8
cmp ecx, 0x20
jae 0x4e62c9
xor eax, eax
mov edx, 1
shl edx, cl
test dl, 0x25
je 0x4e62c1
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x38]
cmp ecx, edx
jge 0x4e62be
mov ecx, edx
mov dword [esi + 0x38], ecx
test eax, eax
jne 0x4e61ef
movzx eax, byte [esi + 0x50]
mov edx, dword [esi + 0x38]
mov dword [ebp - 0x2c], eax
test byte [ebp - 0x2c], 2
je 0x4e637d
cmp edx, 0x40
ja 0x4e62f4
mov dword [ebp - 0x24], 0
lea eax, [ebp - 0x3b0]
mov dword [ebp - 0x28], eax
jmp 0x4e6311
lea eax, [ebp - 0x28]
push eax
push 0
push edx
call fcn.004f1dd0
add esp, 0xc
test eax, eax
jne 0x4e6da1
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
push dword [esi + 0x38]
push 0x20
push eax
call fcn.0053bad0
push dword [ebp - 0x28]
push esi
lea eax, [ebp - 0x1d8]
push eax
call fcn.00501f70
add esp, 0x18
test eax, eax
je 0x4e634c
cmp eax, 0x3f
jne 0x4e6d30
test byte [edi + 0x16f], 8
jne 0x4e634c
mov dword [esi + 0x10], 0x3f
mov edx, dword [esi + 0x38]
test edx, edx
je 0x4e6368
mov eax, dword [ebp - 0x28]
cmp byte [eax], 0x20
jne 0x4e637d
inc eax
mov dword [ebp - 0x28], eax
mov edx, dword [esi + 0x38]
dec edx
mov dword [esi + 0x38], edx
jne 0x4e6353
movsx eax, word [esi + 0x40]
test eax, eax
jne 0x4e637d
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
jae 0x4e63c4
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x34]
add eax, edx
cmp eax, 0x200
mov edx, dword [edi + 0xf8]
jge 0x4e63a9
mov eax, 0x200
shr edx, 3
cmp eax, edx
jge 0x4e63b2
mov eax, edx
push eax
push edi
call fcn.00501570
add esp, 8
test eax, eax
jne 0x4e6eaa
movzx eax, byte [esi + 0x50]
test al, 2
je 0x4e6438
cmp dword [esi + 0x38], 0
je 0x4e6415
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 0x4e6e12
mov dword [esi + 0x38], eax
mov eax, dword [ebp - 0x28]
movsx eax, byte [eax]
cmp eax, 0x20
je 0x4e6e12
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 0x4e63ed
jmp 0x4e6e12
and eax, 0xfffffffd
mov byte [esi + 0x50], al
mov dword [esi + 0x38], 0
cmp dword [ebp - 0x24], 0
je 0x4e6433
push dword [ebp - 0x24]
call fcn.004f1e90
add esp, 4
mov edx, dword [edi + 0x3c]
jmp 0x4e645c
push dword [edi + 0x3c]
push esi
lea eax, [ebp - 0x1d8]
push eax
call fcn.00501f70
add esp, 0xc
test eax, eax
jne 0x4e6e1b
mov edx, dword [edi + 0x3c]
add edx, dword [esi + 0x38]
mov dword [edi + 0x3c], edx
mov eax, dword [edi + 0x4c]
cmp edx, eax
ja 0x4e6465
mov edx, eax
mov dword [edi + 0x4c], edx
jmp 0x4e5369
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4e64c4
test byte [edx + 0x44], 2
je 0x4e649f
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e6492
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.00500a40
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.004fa8e0
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 0x4e53a9
cmp ebx, 1
jg 0x4e53a9
or eax, 0x40
jmp 0x4e53ac
cmp dword [ebp - 0x20], 0
jne 0x4e539d
cmp ebx, 1
jg 0x4e539d
or eax, 0x20
jmp 0x4e53a9
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x4e651f
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 - 0x1e8], 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 0x4e653c
mov ebx, dword [ebp - 0x1e8]
jmp 0x4e54b6
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4e65c0
test byte [eax + 0x44], 2
je 0x4e6596
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 0x4e6584
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.00500a40
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.004fa8e0
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 0x4e6609
cmp edx, 0x2b
jne 0x4e65fb
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x16d]
and eax, 0xffffffbf
mov byte [edi + 0x16d], al
jmp 0x4e5519
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x16d]
jmp 0x4e65fb
push edi
mov eax, 0x2c
push eax
push eax
push 1
call fcn.004fa8e0
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 0x4e669b
test byte [eax + 0x44], 2
je 0x4e6671
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 0x4e665f
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.00500a40
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.004fa8e0
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 0x4e6711
test byte [edx + 0x44], 2
je 0x4e66ec
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e66df
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.00500a40
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.004fa8e0
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 0x4e6944
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x4e674d
movzx eax, byte [eax + 0x1e]
test eax, eax
jne 0x4e6831
cmp dword [edi + 0x128], 0
jne 0x4e6765
cmp dword [ebp - 0x18], 0
je 0x4e6795
cmp dword [edi + 0x130], 0
je 0x4e6795
movzx eax, byte [edi + 0x171]
test eax, 0x80
mov dword [edi + 0x128], 0
je 0x4e6788
and eax, 0x7f
mov byte [edi + 0x171], al
jmp 0x4e6795
cmp dword [edi + 0x130], 0
jne 0x4e6831
movzx eax, byte [edi + 0x16d]
test al, 0x40
je 0x4e67ad
cmp byte [edi + 0x156], 1
je 0x4e69d1
push edi
call fcn.004fe7c0
add esp, 4
test eax, eax
je 0x4e6815
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4e6983
test byte [edx + 0x44], 2
je 0x4e67f0
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e67e3
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.00500a40
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 0x4e68a9
push dword [esi + 4]
and eax, 0xfffffffd
mov byte [esi + 0x4f], al
call fcn.004f1e90
add esp, 4
test eax, eax
je 0x4e68a9
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4e699d
test byte [edx + 0x44], 2
je 0x4e6884
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e6877
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.00500a40
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 0x4e6911
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4e69b7
test byte [eax + 0x44], 2
je 0x4e68ec
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 0x4e68dc
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.00500a40
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.004f82c0
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 0x4e695f
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.005011d0
add esp, 0xc
cmp eax, 2
je 0x4e6949
cmp eax, 1
jne 0x4e5369
jmp 0x4e673a
push edi
push eax
push eax
push 1
call fcn.004fa8e0
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.004fa8e0
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.004fa8e0
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 0x4e69fb
cmp edx, 0x2b
jne 0x4e69ed
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x16d]
and eax, 0xffffffbf
mov byte [edi + 0x16d], al
jmp 0x4e67ad
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x16d]
jmp 0x4e69ed
push edi
mov eax, 0x69
push eax
push eax
push 1
call fcn.004fa8e0
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 0x4e673a
cmp ebx, 2
jge 0x4e673a
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 edx, byte [ecx + 5]
cmp edx, 0x20
je 0x4e6a7a
cmp edx, 0x2b
jne 0x4e6a6c
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x16d]
and eax, 0xffffffbf
mov byte [edi + 0x16d], al
jmp 0x4e58c1
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x16d]
jmp 0x4e6a6c
push edi
mov eax, 0x2c
push eax
push eax
push 1
call fcn.004fa8e0
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 0x4e6b0c
test byte [eax + 0x44], 2
je 0x4e6ae2
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 0x4e6ad0
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.00500a40
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.004fa8e0
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 0x4e6b82
test byte [edx + 0x44], 2
je 0x4e6b5d
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e6b50
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.00500a40
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.004fa8e0
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 0x4e5852
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 0x4e673a
jmp 0x4e5852
mov edx, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
shl edx, 3
cmp edx, 0x11
jge 0x4e6bdf
mov edx, 0x11
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x4e62a4
jmp 0x4e62d3
mov edx, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
shl edx, 3
cmp edx, 0x11
jge 0x4e6c06
mov edx, 0x11
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x4e62a4
jmp 0x4e5e9d
mov eax, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
lea edx, [eax + eax*2]
cmp edx, 7
jge 0x4e6c2d
mov edx, 7
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x4e62a4
jmp 0x4e62d3
cmp dword [ebp - 0x3bc], 0x34
jg 0x4e5fc3
mov edx, eax
movzx eax, byte [esi + 0x50]
or eax, 2
movsx edx, word [edx*8 + 0x5681f8]
mov dword [ebp - 0x2c], eax
mov byte [esi + 0x50], al
movsx eax, word [esi + 0x40]
test eax, eax
mov dword [esi + 0x38], edx
jne 0x4e6c7f
mov eax, dword [ebp - 0x3bc]
movzx eax, word [eax*8 + 0x5681fc]
mov word [esi + 0x40], ax
mov eax, dword [ebp - 0x3bc]
add ecx, 0xffffffd8
cmp ecx, 0x20
movzx eax, word [eax*8 + 0x5681fe]
mov word [esi + 0x42], ax
jb 0x4e62a4
jmp 0x4e62d3
mov eax, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
lea edx, [eax + eax*2]
cmp edx, 7
jge 0x4e6cb8
mov edx, 7
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x4e62a4
jmp 0x4e5e9d
cmp dword [ebp - 0x3b4], 0x34
jg 0x4e6198
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, word [eax*8 + 0x5681f8]
mov dword [ebp - 0x370], edx
mov dword [esi + 0x38], edx
movzx edx, word [eax*8 + 0x5681fc]
movzx eax, word [eax*8 + 0x5681fe]
mov word [esi + 0x40], dx
mov word [esi + 0x42], ax
mov edx, dword [ebp - 0x370]
jb 0x4e62a4
jmp 0x4e5e9d
push edi
push eax
push eax
push 1
call fcn.004fa8e0
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 0x4e6d87
test byte [edx + 0x44], 2
je 0x4e6d62
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e6d55
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.00500a40
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.004fa8e0
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 0x4e6df8
test byte [edx + 0x44], 2
je 0x4e6dd3
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e6dc6
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.00500a40
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.004fa8e0
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 0x4e6415
cmp eax, 0x3f
jne 0x4e6e39
test byte [edi + 0x16f], 8
jne 0x4e6453
mov dword [esi + 0x10], 0x3f
jmp 0x4e6453
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4e6e90
test byte [edx + 0x44], 2
je 0x4e6e6b
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e6e5e
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.00500a40
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.004fa8e0
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 0x4e6f10
test byte [eax + 0x44], 2
je 0x4e6ee6
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 0x4e6ed4
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.00500a40
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.004fa8e0
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 0x4e6f86
test byte [edx + 0x44], 2
je 0x4e6f61
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e6f54
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.00500a40
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.004fa8e0
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 0x4e6ff7
test byte [edx + 0x44], 2
je 0x4e6fd2
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4e6fc5
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.00500a40
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.004fa8e0
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 0x4e5403
cmp ebx, 1
jg 0x4e5403
or eax, 0x40
jmp 0x4e5406
cmp dword [ebp - 0x20], 0
jne 0x4e53f3
cmp ebx, 1
jg 0x4e53f3
movzx eax, byte [esi + 0x4f]
or eax, 0x20
jmp 0x4e5403
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 0x4e7072
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