Function at 0x10144cb0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x39c
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], esi
mov edi, dword [ebx + 4]
test edi, edi
je 0x10146465
mov edx, 1
xor eax, eax
mov esi, dword [edi + 0x58]
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], eax
mov dword [ebp - 0x20], ebx
mov ebx, edx
cmp dword [edi + 0xd8], 0
jle 0x10145bfa
mov ecx, dword [esi + 0xc]
cmp ecx, 1
jle 0x10144d73
lea eax, [ecx - 1]
mov dword [ebp - 0x24], eax
mov dword [esi + 0xc], eax
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x10144db9
test al, 0x20
je 0x10144db9
mov edx, dword [ebp + 0xc]
movsx edx, byte [edx]
cmp edx, 2
je 0x10145a08
and eax, 0xffffffdf
cmp edx, 1
je 0x101459ed
and eax, 0xffffffbf
push edi
mov byte [esi + 0x4f], al
mov dword [ebp - 0x34], ecx
call fcn.101544b0
mov ecx, dword [ebp - 0x34]
add esp, 4
test eax, eax
jne 0x1014593c
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x10144d65
test al, 0x20
jne 0x10146432
mov ecx, dword [ebp - 0x24]
mov dword [esi + 0xc], ecx
or eax, 0x20
mov byte [esi + 0x4f], al
jmp 0x10144db9
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
cmp ecx, 2
je 0x10146413
movzx eax, byte [esi + 0x4f]
and eax, 0xffffffdf
cmp ecx, 1
je 0x101463f8
and eax, 0xffffffbf
push edi
mov byte [esi + 0x4f], al
call fcn.101544b0
add esp, 4
test eax, eax
jne 0x10146347
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x10144db9
test al, 0x20
jne 0x10145a23
movsx ecx, byte [esi + 0x48]
add ecx, 0xfffffffe
cmp ecx, 0x1a
ja case.0x10144dc9.3
jmp dword [ecx*4 + 0x101b6c20]
mov eax, dword [esi + 0x3c]
mov dword [ebp - 0x1b0], eax
mov edx, dword [edi + 0x3c]
mov eax, dword [esi + 0x38]
lea ecx, [edx + eax]
cmp ecx, dword [edi + 0x44]
ja 0x10145a69
test eax, eax
jg 0x10145a3d
mov eax, dword [edi + 0x4c]
cmp edx, eax
ja 0x10144dfc
mov edx, eax
mov dword [edi + 0x4c], edx
jmp case.0x10144dc9.16
mov ecx, dword [edi + 0xd8]
dec ecx
mov edx, dword [edi + 0x44]
mov eax, dword [edi + 0xfc]
add eax, edx
mov dword [edi + 0x3c], edx
test ecx, ecx
mov dword [edi + 0x44], eax
mov dword [edi + 0x48], edx
mov dword [edi + 0xd8], ecx
jle 0x10145b2a
push dword [edi + 0xf8]
push 0x20
push edx
call fcn.101715a0
add esp, 0xc
jmp case.0x10144dc9.16
cmp ebx, 2
jge case.0x10144dc9.16
jmp 0x10145beb
mov ecx, dword [ebp + 0xc]
movsx ecx, byte [ecx]
cmp ecx, 1
je 0x10145ee4
cmp ecx, 2
je 0x10145ec5
test byte [esi + 0x4e], 0x20
jne 0x10144f6c
mov dword [ebp - 0x39c], eax
mov edx, ebx
mov ebx, dword [ebp - 0x20]
test byte [edi + 0x168], 2
je 0x10144ec6
test dword [ebp - 0x39c], 0x80
je 0x10144ec6
push edx
mov dword [ebp - 0x1c8], edx
lea eax, [ebp - 0x350]
push eax
lea ecx, [ebp - 0x1c0]
push ecx
lea eax, [ebp + 0x10]
push eax
lea ecx, [ebp + 0xc]
push ecx
call fcn.10154420
mov edx, dword [ebp - 0x1c8]
add esp, 0x14
test eax, eax
jne 0x10145ddb
mov eax, dword [edi + 0x70]
test eax, eax
je 0x10144f02
push dword [edi + 0x8c]
push dword [edi + 0x38]
push eax
call fcn.10171700
push dword [edi + 0x38]
call fcn.10146540
add esp, 0x10
mov eax, dword [edi + 0x70]
mov edx, dword [edi + 0x38]
sub edx, eax
sub dword [edi + 0x3c], edx
sub dword [edi + 0x44], edx
sub dword [edi + 0x48], edx
mov dword [edi + 0x38], eax
mov dword [edi + 0x70], 0
mov eax, dword [edi + 0x18]
test eax, eax
je 0x10145dbc
test byte [eax + 0x44], 2
je 0x10144f42
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 0x10144f30
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, 0x69
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
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.1014f8d0
add esp, 0x14
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0xd8]
dec ecx
mov edx, dword [edi + 0x44]
mov eax, dword [edi + 0xfc]
add eax, edx
mov dword [edi + 0x3c], edx
test ecx, ecx
mov dword [edi + 0x44], eax
mov dword [edi + 0x48], edx
mov dword [edi + 0xd8], ecx
jle 0x10145e04
push dword [edi + 0xf8]
push 0x20
push edx
call fcn.101715a0
add esp, 0xc
jmp case.0x10144dc9.16
cmp ebx, 1
jle 0x10145076
mov eax, dword [ebp - 0x350]
cmp eax, 7
je 0x10144fc8
cmp eax, 8
jne 0x10145055
cmp dword [ebp - 0xc], 0
je 0x10144fe7
mov eax, dword [ebp - 0x1b4]
dec ebx
add dword [ebp - 0x1c0], eax
mov dword [ebp - 0xc], 0
jmp 0x1014525a
cmp dword [ebp - 8], 0
mov eax, dword [ebp - 0xc]
je 0x10144ff5
mov eax, 1
xor edx, edx
mov ecx, dword [ebp - 0x34c]
test ecx, ecx
mov dword [ebp - 0xc], eax
jle 0x1014502f
mov dword [ebp - 0x1ac], edi
xor eax, eax
mov edi, dword [ebp + eax*4 - 0x1a8]
sub edi, dword [ebp + eax*4 - 0xb0]
imul edi, dword [ebp + eax*4 - 0x12c]
inc eax
add edx, edi
cmp eax, ecx
jl 0x1014500c
mov edi, dword [ebp - 0x1ac]
add edx, dword [ebp - 0x348]
lea eax, [ebp - 0x350]
push eax
mov dword [ebp - 0x1c0], edx
lea ecx, [ebp - 0x1a8]
push ecx
push 0
call fcn.10155130
add esp, 0xc
jmp 0x10145070
mov ecx, dword [ebp - 0xc]
test ecx, ecx
mov eax, dword [ebp - 0x1b4]
je 0x10145067
mov ecx, 0
add dword [ebp - 0x1c0], eax
mov dword [ebp - 0xc], ecx
dec ebx
jmp 0x1014525a
lea eax, [ebp - 0x350]
push eax
lea edx, [ebp - 0x1c0]
push edx
lea ecx, [ebp + 0x10]
push ecx
lea ebx, [ebp + 0xc]
push ebx
call fcn.10154180
add esp, 0x10
mov ebx, eax
test ebx, ebx
jne 0x10146298
mov ecx, dword [ebp - 0x1b8]
cmp ecx, 2
je 0x10146444
cmp ecx, 1
je 0x10145bfa
mov eax, dword [ebp - 0x350]
cmp eax, 7
jl 0x101451e1
cmp eax, 8
jg 0x101451e1
mov eax, dword [ebp - 0x1b4]
test eax, eax
mov dword [ebp - 0x1d0], eax
je 0x101450f1
mov eax, dword [ebp - 0x1bc]
cdq
mov ebx, dword [ebp - 0x1d0]
idiv ebx
mov ebx, eax
jmp 0x10145104
test byte [edi + 0x168], 2
je 0x101451d6
mov ebx, dword [ebp - 0x1bc]
test ebx, ebx
je 0x101451d8
cmp ecx, 0x34
je 0x1014511b
cmp ecx, 0x1c
jl 0x10145128
cmp ecx, 0x2c
jg 0x10145128
mov eax, 1
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], eax
jmp 0x1014512f
mov dword [ebp - 8], 0
mov eax, dword [ebp - 0x34c]
test eax, eax
jle 0x1014517b
mov dword [ebp - 0x1ac], edi
xor edx, edx
lea edi, [edx*8]
lea edi, [edi + edx*4]
mov ecx, dword [ebp + edi - 0x340]
mov edi, dword [ebp + edi - 0x33c]
mov dword [ebp + edx*4 - 0xb0], ecx
mov dword [ebp + edx*4 - 0x12c], edi
mov dword [ebp + edx*4 - 0x1a8], ecx
inc edx
cmp edx, eax
jl 0x10145141
mov edi, dword [ebp - 0x1ac]
test eax, eax
mov edx, 0
jle 0x101451ad
mov dword [ebp - 0x1ac], edi
xor ecx, ecx
mov edi, dword [ebp + ecx*4 - 0x1a8]
sub edi, dword [ebp + ecx*4 - 0xb0]
imul edi, dword [ebp + ecx*4 - 0x12c]
inc ecx
add edx, edi
cmp ecx, eax
jl 0x1014518a
mov edi, dword [ebp - 0x1ac]
add edx, dword [ebp - 0x348]
lea eax, [ebp - 0x350]
push eax
mov dword [ebp - 0x1c0], edx
lea ecx, [ebp - 0x1a8]
push ecx
push 0
call fcn.10155130
add esp, 0xc
jmp 0x1014525a
xor ebx, ebx
mov dword [ebp - 4], 1
jmp 0x10145260
cmp eax, 6
je 0x101451eb
cmp eax, 5
jne 0x10145238
movzx ecx, byte [edi + 0x168]
and ecx, 2
mov eax, dword [ebp - 0x1b4]
shr ecx, 1
mov ebx, dword [ebp - 0x1bc]
test eax, eax
mov dword [ebp - 0x1c4], eax
je 0x10145220
mov eax, ebx
cdq
mov ebx, dword [ebp - 0x1c4]
idiv ebx
mov ebx, eax
test ecx, ecx
jne 0x1014522b
jmp 0x1014525a
test ecx, ecx
jne 0x10145229
mov ebx, 0
je 0x1014525a
test ebx, ebx
jne 0x1014525a
mov dword [ebp - 4], 1
jmp 0x10145260
cmp ecx, 0x34
je 0x10145247
cmp ecx, 0x1c
jl 0x10145255
cmp ecx, 0x2c
jg 0x10145255
mov dword [ebp - 0xc], 1
mov ebx, 2
jmp 0x1014525a
mov ebx, 1
cmp dword [ebp - 4], 0
je 0x1014527c
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x10145273
mov dword [esi + 0xc], 2
jmp case.0x10144dc9.16
inc eax
mov dword [esi + 0xc], eax
jmp case.0x10144dc9.16
mov eax, dword [esi]
and byte [esi + 0x4f], 0xf7
movsx ecx, byte [esi + 0x48]
movzx eax, byte [eax + 0x16e]
test eax, 0x80
je 0x101452b7
mov eax, dword [ecx*4 + 0x101bd380]
test eax, eax
je 0x101452b7
mov edx, dword [ebp - 0x1b8]
movsx eax, byte [eax + edx]
test eax, eax
je 0x101452b7
mov dword [ebp - 0x1b8], eax
movsx ecx, byte [esi + 0x48]
lea eax, [ecx - 0x13]
cmp eax, 0x20
ja case.default.0x101452c3
jmp dword [eax*4 + 0x101b6ca0]
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x10145309
movzx eax, byte [esi + 0x50]
or eax, 2
mov byte [esi + 0x50], al
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1b8]
movsx edx, word [eax*2 + 0x101bd220]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x10145ef2
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x101457b5
jmp 0x101457e4
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x101457b5
movzx eax, byte [esi + 0x50]
mov dword [ebp - 0x2c], eax
jmp 0x101457e4
mov eax, dword [ebp - 0x1b8]
movsx edx, word [eax*2 + 0x101bd220]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x10145f19
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x101457b5
jmp 0x10145315
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x10145387
movzx eax, byte [esi + 0x50]
or eax, 2
mov byte [esi + 0x50], al
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1b8]
movsx edx, byte [eax + 0x101bd5ed]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x10145f40
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x101457b5
jmp 0x101457e4
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x101457b5
jmp 0x10145315
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x101453ca
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 - 0x1b8]
movsx edx, byte [eax + 0x101bd5db]
mov dword [esi + 0x38], edx
jb 0x101457b5
jmp 0x101457e4
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x101457b5
jmp 0x10145315
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x10145481
or byte [esi + 0x51], 4
mov eax, dword [ebp - 0x1b8]
cmp eax, 0x19
mov dword [ebp - 0x39c], eax
jge 0x10145f67
cmp dword [ebp - 0x39c], 5
jl 0x1014543f
cmp dword [ebp - 0x39c], 0x11
jg 0x1014543f
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 - 0x1b8]
movsx edx, byte [eax + 0x101bd5db]
mov dword [esi + 0x38], edx
jb 0x101457b5
jmp 0x101457e4
cmp dword [ebp - 0x39c], 0x39
je 0x10145451
cmp dword [ebp - 0x39c], 0x38
jne 0x1014546b
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1b4]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x101457b5
jmp 0x10145315
add ecx, 0xffffffd8
mov eax, 0x3d
cmp ecx, 0x20
jb 0x101457b7
jmp 0x101456c0
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x101457b5
jmp 0x10145315
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x101454e4
or byte [esi + 0x51], 4
mov eax, dword [ebp - 0x1b8]
cmp eax, 5
jl 0x101454c9
cmp eax, 0x11
jg 0x101454c9
or byte [esi + 0x50], 2
mov eax, dword [ebp - 0x1b8]
movsx edx, byte [eax + 0x101bd5db]
mov dword [esi + 0x38], edx
mov eax, dword [ebp - 0x1b8]
jmp 0x101454ea
cmp eax, 0x39
je 0x101454d3
cmp eax, 0x38
jne 0x101454ea
mov edx, dword [ebp - 0x1b4]
mov dword [esi + 0x38], edx
mov eax, dword [ebp - 0x1b8]
jmp 0x101454ea
mov eax, dword [ebp - 0x1b8]
cmp eax, 0x19
jge case.0x101452c3.30
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x101457b5
jmp 0x10145315
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x1014553c
movzx eax, byte [esi + 0x50]
add ecx, 0xffffffd8
or eax, 2
mov byte [esi + 0x50], al
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1b8]
movsx edx, word [eax*8 + 0x101bd1da]
movsx eax, word [esi + 0x40]
add edx, eax
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x101457b5
jmp 0x101457e4
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x101457b5
jmp 0x10145315
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x101457b5
jmp 0x101457da
mov eax, dword [ebp - 0x1b8]
movsx edx, byte [eax + 0x101bd5ed]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x10145fcf
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x101457b5
jmp 0x10145315
mov eax, dword [ebp - 0x1b8]
cmp eax, 5
jl 0x10145598
cmp eax, 0x11
jle 0x101455ae
add ecx, 0xffffffd8
mov eax, 0x3d
cmp ecx, 0x20
jb 0x101457b7
jmp 0x101456c0
add ecx, 0xffffffd8
mov edx, 2
mov dword [esi + 0x38], 2
cmp ecx, 0x20
jb 0x101457b5
jmp 0x10145315
mov eax, dword [ebp - 0x1b8]
cmp eax, 5
jl 0x101455db
cmp eax, 0x11
jle 0x101455f1
add ecx, 0xffffffd8
mov eax, 0x3d
cmp ecx, 0x20
jb 0x101457b7
jmp 0x101456c0
add ecx, 0xffffffd8
movsx edx, byte [eax + 0x101bd5db]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x101457b5
jmp 0x10145315
or byte [esi + 0x51], 4
mov eax, dword [ebp - 0x1b8]
cmp eax, 0x19
mov dword [ebp - 0x398], eax
jge 0x10145ff6
cmp dword [ebp - 0x398], 5
jl 0x10145652
cmp dword [ebp - 0x398], 0x11
jg 0x10145652
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, byte [eax + 0x101bd5db]
mov dword [esi + 0x38], edx
jb 0x101457b5
jmp 0x10145315
cmp dword [ebp - 0x398], 0x39
je 0x10145664
cmp dword [ebp - 0x398], 0x38
jne 0x1014567e
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1b4]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x101457b5
jmp 0x10145315
add ecx, 0xffffffd8
mov eax, 0x3d
cmp ecx, 0x20
jb 0x101457b7
jmp 0x101456c0
mov eax, dword [ebp - 0x1b8]
cmp eax, 0x19
mov dword [ebp - 0x1cc], eax
jl 0x101456af
cmp dword [ebp - 0x1cc], 0x34
jle 0x1014575b
add ecx, 0xffffffd8
mov eax, 0x3d
cmp ecx, 0x20
jb 0x101457b7
mov ebx, eax
mov edx, dword [edi + 0x70]
test edx, edx
je 0x101456fe
push dword [edi + 0x8c]
push dword [edi + 0x38]
push edx
call fcn.10171700
push dword [edi + 0x38]
call fcn.10146540
add esp, 0x10
mov edx, dword [edi + 0x70]
mov ecx, dword [edi + 0x38]
sub ecx, edx
sub dword [edi + 0x3c], ecx
sub dword [edi + 0x44], ecx
sub dword [edi + 0x48], ecx
mov dword [edi + 0x38], edx
mov dword [edi + 0x70], 0
mov edx, dword [edi + 0x18]
test edx, edx
je 0x10146043
test byte [edx + 0x44], 2
je 0x10145736
mov dword [edx + 0x38], ebx
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], ebx
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x10145727
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov eax, ebx
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
push ebx
movzx edx, byte [edi + 0x16c]
push ebx
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.1014f8d0
add esp, 0x14
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, word [eax*8 + 0x101bd1d8]
mov dword [ebp - 0x354], edx
mov dword [esi + 0x38], edx
movzx edx, word [eax*8 + 0x101bd1dc]
movzx eax, word [eax*8 + 0x101bd1de]
mov word [esi + 0x40], dx
mov word [esi + 0x42], ax
mov edx, dword [ebp - 0x354]
jb 0x101457b5
jmp 0x10145315
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1b4]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x101457b5
jmp 0x10145315
add ecx, 0xffffffd8
cmp ecx, 0x20
jae 0x101457da
xor eax, eax
mov edx, 1
shl edx, cl
test dl, 0x25
je 0x101457d2
mov edx, dword [esi + 0x40]
mov ecx, dword [esi + 0x38]
cmp edx, ecx
jge 0x101457cf
mov edx, ecx
mov dword [esi + 0x38], edx
test eax, eax
jne 0x101456c0
movzx eax, byte [esi + 0x50]
mov edx, dword [esi + 0x38]
mov dword [ebp - 0x2c], eax
test byte [ebp - 0x2c], 2
je 0x1014588e
cmp edx, 0x40
ja 0x10145805
mov dword [ebp - 0x10], 0
lea eax, [ebp - 0x394]
mov dword [ebp - 0x28], eax
jmp 0x10145822
lea eax, [ebp - 0x28]
push eax
push 0
push edx
call fcn.10146480
add esp, 0xc
test eax, eax
jne 0x101460ce
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
push dword [esi + 0x38]
push 0x20
push eax
call fcn.101715a0
push dword [ebp - 0x28]
push esi
lea eax, [ebp - 0x1c0]
push eax
call fcn.10155230
add esp, 0x18
test eax, eax
je 0x1014585d
cmp eax, 0x3f
jne 0x1014605d
test byte [edi + 0x16f], 8
jne 0x1014585d
mov dword [esi + 0x10], 0x3f
mov edx, dword [esi + 0x38]
test edx, edx
je 0x10145879
mov eax, dword [ebp - 0x28]
cmp byte [eax], 0x20
jne 0x1014588e
inc eax
mov dword [ebp - 0x28], eax
mov edx, dword [esi + 0x38]
dec edx
mov dword [esi + 0x38], edx
jne 0x10145864
movsx eax, word [esi + 0x40]
test eax, eax
jne 0x1014588e
mov dword [esi + 0x38], 1
dec dword [ebp - 0x28]
mov edx, dword [esi + 0x38]
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x30], eax
lea ecx, [edx + eax]
cmp ecx, dword [edi + 0x44]
ja 0x101461d7
movzx eax, byte [esi + 0x50]
test al, 2
je 0x10145916
test edx, edx
je 0x101458ef
mov ecx, dword [ebp - 0x28]
movzx eax, byte [ecx]
mov ecx, dword [ebp - 0x30]
mov byte [ecx], al
inc dword [edi + 0x3c]
inc dword [ebp - 0x28]
mov eax, dword [esi + 0x38]
dec eax
je 0x1014613f
mov dword [esi + 0x38], eax
mov eax, dword [ebp - 0x28]
movsx eax, byte [eax]
cmp eax, 0x20
je 0x1014613f
mov ecx, dword [edi + 0x3c]
mov byte [ecx], al
inc dword [edi + 0x3c]
inc dword [ebp - 0x28]
mov eax, dword [esi + 0x38]
dec eax
jne 0x101458c7
jmp 0x1014613f
and eax, 0xfffffffd
mov byte [esi + 0x50], al
mov dword [esi + 0x38], 0
cmp dword [ebp - 0x10], 0
je case.0x10144dc9.16
push dword [ebp - 0x10]
call fcn.10146540
add esp, 4
jmp case.0x10144dc9.16
push dword [ebp - 0x30]
push esi
lea eax, [ebp - 0x1c0]
push eax
call fcn.10155230
add esp, 0xc
test eax, eax
jne 0x10146148
mov eax, dword [esi + 0x38]
add dword [edi + 0x3c], eax
jmp case.0x10144dc9.16
mov edx, dword [edi + 0x70]
mov ebx, eax
test edx, edx
je 0x1014597a
push dword [edi + 0x8c]
push dword [edi + 0x38]
push edx
call fcn.10171700
push dword [edi + 0x38]
call fcn.10146540
add esp, 0x10
mov edx, dword [edi + 0x70]
mov ecx, dword [edi + 0x38]
sub ecx, edx
sub dword [edi + 0x3c], ecx
sub dword [edi + 0x44], ecx
sub dword [edi + 0x48], ecx
mov dword [edi + 0x38], edx
mov dword [edi + 0x70], 0
mov edx, dword [edi + 0x18]
test edx, edx
je 0x101459d3
test byte [edx + 0x44], 2
je 0x101459ae
mov dword [edx + 0x38], ebx
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], ebx
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x1014599f
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov eax, ebx
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
push ebx
movzx edx, byte [edi + 0x16c]
push ebx
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.1014f8d0
add esp, 0x14
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
push edi
push ebx
push ebx
push 1
call fcn.101468f0
add esp, 0x10
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0xc], 0
jne 0x10144d38
cmp ebx, 1
jg 0x10144d38
or eax, 0x40
jmp 0x10144d3b
cmp dword [ebp - 0xc], 0
jne 0x10144d2c
cmp ebx, 1
jg 0x10144d2c
or eax, 0x20
jmp 0x10144d38
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x10145a2e
inc eax
mov dword [esi + 0xc], eax
xor eax, eax
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x1c8], ebx
xor ecx, ecx
mov ebx, dword [ebp - 0x1b0]
movzx eax, byte [ecx + ebx]
inc ecx
mov byte [edx], al
mov edx, dword [edi + 0x3c]
inc edx
mov dword [edi + 0x3c], edx
cmp ecx, dword [esi + 0x38]
jl 0x10145a4b
mov ebx, dword [ebp - 0x1c8]
jmp 0x10144df3
mov eax, dword [edi + 0x70]
test eax, eax
je 0x10145aa5
push dword [edi + 0x8c]
push dword [edi + 0x38]
push eax
call fcn.10171700
push dword [edi + 0x38]
call fcn.10146540
add esp, 0x10
mov eax, dword [edi + 0x70]
mov edx, dword [edi + 0x38]
sub edx, eax
sub dword [edi + 0x3c], edx
sub dword [edi + 0x44], edx
sub dword [edi + 0x48], edx
mov dword [edi + 0x38], eax
mov dword [edi + 0x70], 0
mov eax, dword [edi + 0x18]
test eax, eax
je 0x10145b0b
test byte [eax + 0x44], 2
je 0x10145ae1
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 0x10145acf
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, 0x42
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
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.1014f8d0
add esp, 0x14
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
push edi
mov eax, 0x42
push eax
push eax
push 1
call fcn.101468f0
add esp, 0x10
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x70]
test eax, eax
je 0x10145b66
push dword [edi + 0x8c]
push dword [edi + 0x38]
push eax
call fcn.10171700
push dword [edi + 0x38]
call fcn.10146540
add esp, 0x10
mov eax, dword [edi + 0x70]
mov edx, dword [edi + 0x38]
sub edx, eax
sub dword [edi + 0x3c], edx
sub dword [edi + 0x44], edx
sub dword [edi + 0x48], edx
mov dword [edi + 0x38], eax
mov dword [edi + 0x70], 0
mov eax, dword [edi + 0x18]
test eax, eax
je 0x10145bcc
test byte [eax + 0x44], 2
je 0x10145ba2
mov edx, 0x1b
mov dword [eax + 0x38], edx
mov eax, dword [edi + 0x18]
mov dword [eax + 0x3c], edx
mov edx, dword [edi + 0x64]
test edx, edx
je 0x10145b90
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, 0x1b
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
mov eax, 0x1b
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.1014f8d0
add esp, 0x14
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
push edi
mov eax, 0x1b
push eax
push eax
push 1
call fcn.101468f0
add esp, 0x10
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
movsx eax, byte [eax]
cmp eax, 1
jne 0x10145d49
mov ebx, dword [ebp - 0x20]
mov eax, dword [edi + 0x70]
test eax, eax
je 0x10145c39
push dword [edi + 0x8c]
push dword [edi + 0x38]
push eax
call fcn.10171700
push dword [edi + 0x38]
call fcn.10146540
add esp, 0x10
mov eax, dword [edi + 0x70]
mov edx, dword [edi + 0x38]
sub edx, eax
sub dword [edi + 0x3c], edx
sub dword [edi + 0x44], edx
sub dword [edi + 0x48], edx
mov dword [edi + 0x38], eax
mov dword [edi + 0x70], 0
movzx eax, byte [esi + 0x4f]
test al, 2
je 0x10145cb1
push dword [esi + 4]
and eax, 0xfffffffd
mov byte [esi + 0x4f], al
call fcn.10146540
add esp, 4
test eax, eax
je 0x10145cb1
mov edx, dword [edi + 0x18]
test edx, edx
je 0x10145d88
test byte [edx + 0x44], 2
je 0x10145c8c
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x10145c7f
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
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.1014f8d0
add esp, 0x14
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x10]
test edx, edx
je 0x10145d19
mov eax, dword [edi + 0x18]
test eax, eax
je 0x10145da2
test byte [eax + 0x44], 2
je 0x10145cf4
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 0x10145ce4
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, dword [esi + 0x10]
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
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.1014f8d0
add esp, 0x14
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
push dword [edi + 0x100]
and byte [edi + 0x16c], 0xdc
and byte [edi + 0x16e], 0xf7
call fcn.1014a7f0
add esp, 4
mov dword [ebx + 4], 0
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x10145d64
xor eax, eax
mov dword [esi + 0xc], 2
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
push ebx
lea eax, [ebp + 0x10]
push eax
lea ecx, [ebp + 0xc]
push ecx
call fcn.101540e0
add esp, 0xc
cmp eax, 2
je 0x10145d4e
cmp eax, 1
jne case.0x10144dc9.16
jmp 0x10145bfa
push edi
push eax
push eax
push 1
call fcn.101468f0
add esp, 0x10
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
push edi
push edx
push edx
push 1
call fcn.101468f0
add esp, 0x10
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
push edi
mov eax, 0x69
push eax
push eax
push 1
call fcn.101468f0
add esp, 0x10
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
cmp byte [eax], 2
jne 0x10145bfd
cmp edx, 2
jge 0x10145bfd
xor eax, eax
mov dword [esi + 0xc], 2
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
leave
ret
mov eax, dword [edi + 0x70]
test eax, eax
je 0x10145e40
push dword [edi + 0x8c]
push dword [edi + 0x38]
push eax
call fcn.10171700
push dword [edi + 0x38]
call fcn.10146540
add esp, 0x10
mov eax, dword [edi + 0x70]
mov edx, dword [edi + 0x38]
sub edx, eax
sub dword [edi + 0x3c], edx
sub dword [edi + 0x44], edx
sub dword [edi + 0x48], edx
mov dword [edi + 0x38], eax
mov dword [edi + 0x70], 0
mov eax, dword [edi + 0x18]
test eax, eax
je 0x10145ea6
test byte [eax + 0x44], 2
je 0x10145e7c
mov edx, 0x1b
mov dword [eax + 0x38], edx
mov eax, dword [edi + 0x18]
mov dword [eax + 0x3c], edx
mov edx, dword [edi + 0x64]
test edx, edx
je 0x10145e6a
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, 0x1b
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
mov eax, 0x1b
push eax
movzx edx, byte [edi + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.1014f8d0
add esp, 0x14
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
push edi
mov eax, 0x1b
push eax
push eax
push 1
call fcn.101468f0
add esp, 0x10
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
cmp ebx, 2
jge 0x10144f6c
xor eax, eax
mov dword [esi + 0xc], 2
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
cmp ebx, 2
jl 0x10145bfa
jmp 0x10144f6c
mov edx, dword [ebp - 0x1b4]
add ecx, 0xffffffd8
shl edx, 3
cmp edx, 0x11
jge 0x10145f08
mov edx, 0x11
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x101457b5
jmp 0x101457e4
mov edx, dword [ebp - 0x1b4]
add ecx, 0xffffffd8
shl edx, 3
cmp edx, 0x11
jge 0x10145f2f
mov edx, 0x11
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x101457b5
jmp 0x10145315
mov eax, dword [ebp - 0x1b4]
add ecx, 0xffffffd8
lea edx, [eax + eax*2]
cmp edx, 7
jge 0x10145f56
mov edx, 7
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x101457b5
jmp 0x101457e4
cmp dword [ebp - 0x39c], 0x34
jg 0x1014543f
movzx eax, byte [esi + 0x50]
or eax, 2
mov dword [ebp - 0x2c], eax
mov byte [esi + 0x50], al
mov eax, dword [ebp - 0x39c]
movsx edx, word [eax*8 + 0x101bd1d8]
movsx eax, word [esi + 0x40]
test eax, eax
mov dword [esi + 0x38], edx
jne 0x10145fac
mov eax, dword [ebp - 0x39c]
movzx eax, word [eax*8 + 0x101bd1dc]
mov word [esi + 0x40], ax
mov eax, dword [ebp - 0x39c]
add ecx, 0xffffffd8
cmp ecx, 0x20
movzx eax, word [eax*8 + 0x101bd1de]
mov word [esi + 0x42], ax
jb 0x101457b5
jmp 0x101457e4
mov eax, dword [ebp - 0x1b4]
add ecx, 0xffffffd8
lea edx, [eax + eax*2]
cmp edx, 7
jge 0x10145fe5
mov edx, 7
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x101457b5
jmp 0x10145315
cmp dword [ebp - 0x398], 0x34
jg 0x10145652
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, word [eax*8 + 0x101bd1d8]
mov dword [ebp - 0x354], edx
mov dword [esi + 0x38], edx
movzx edx, word [eax*8 + 0x101bd1dc]
movzx eax, word [eax*8 + 0x101bd1de]
mov word [esi + 0x40], dx
mov word [esi + 0x42], ax
mov edx, dword [ebp - 0x354]
jb 0x101457b5
jmp 0x10145315
push edi
push ebx
push ebx
push 1
call fcn.101468f0
add esp, 0x10
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x18]
test edx, edx
je 0x101460b4
test byte [edx + 0x44], 2
je 0x1014608f
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x10146082
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
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.1014f8d0
add esp, 0x14
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.101468f0
add esp, 0x10
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x18]
test edx, edx
je 0x10146125
test byte [edx + 0x44], 2
je 0x10146100
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x101460f3
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
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.1014f8d0
add esp, 0x14
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.101468f0
add esp, 0x10
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
movzx eax, byte [esi + 0x50]
jmp 0x101458ef
cmp eax, 0x3f
jne 0x10146166
test byte [edi + 0x16f], 8
jne 0x10145931
mov dword [esi + 0x10], 0x3f
jmp 0x10145931
mov edx, dword [edi + 0x18]
test edx, edx
je 0x101461bd
test byte [edx + 0x44], 2
je 0x10146198
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x1014618b
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
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.1014f8d0
add esp, 0x14
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.101468f0
add esp, 0x10
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x70]
test eax, eax
je 0x10146213
push dword [edi + 0x8c]
push dword [edi + 0x38]
push eax
call fcn.10171700
push dword [edi + 0x38]
call fcn.10146540
add esp, 0x10
mov eax, dword [edi + 0x70]
mov edx, dword [edi + 0x38]
sub edx, eax
sub dword [edi + 0x3c], edx
sub dword [edi + 0x44], edx
sub dword [edi + 0x48], edx
mov dword [edi + 0x38], eax
mov dword [edi + 0x70], 0
mov eax, dword [edi + 0x18]
test eax, eax
je 0x10146279
test byte [eax + 0x44], 2
je 0x1014624f
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 0x1014623d
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, 0x42
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
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.1014f8d0
add esp, 0x14
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
push edi
mov eax, 0x42
push eax
push eax
push 1
call fcn.101468f0
add esp, 0x10
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x70]
test eax, eax
je 0x101462d4
push dword [edi + 0x8c]
push dword [edi + 0x38]
push eax
call fcn.10171700
push dword [edi + 0x38]
call fcn.10146540
add esp, 0x10
mov eax, dword [edi + 0x70]
mov edx, dword [edi + 0x38]
sub edx, eax
sub dword [edi + 0x3c], edx
sub dword [edi + 0x44], edx
sub dword [edi + 0x48], edx
mov dword [edi + 0x38], eax
mov dword [edi + 0x70], 0
mov eax, dword [edi + 0x18]
test eax, eax
je 0x1014632d
test byte [eax + 0x44], 2
je 0x10146308
mov dword [eax + 0x38], ebx
mov eax, dword [edi + 0x18]
mov dword [eax + 0x3c], ebx
mov edx, dword [edi + 0x64]
test edx, edx
je 0x101462f9
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, ebx
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
push ebx
movzx eax, byte [edi + 0x16c]
push ebx
and eax, 7
push eax
push 0xffffffffffffffff
push edi
call fcn.1014f8d0
add esp, 0x14
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
push edi
push ebx
push ebx
push 1
call fcn.101468f0
add esp, 0x10
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x70]
mov ebx, eax
test edx, edx
je 0x10146385
push dword [edi + 0x8c]
push dword [edi + 0x38]
push edx
call fcn.10171700
push dword [edi + 0x38]
call fcn.10146540
add esp, 0x10
mov edx, dword [edi + 0x70]
mov ecx, dword [edi + 0x38]
sub ecx, edx
sub dword [edi + 0x3c], ecx
sub dword [edi + 0x44], ecx
sub dword [edi + 0x48], ecx
mov dword [edi + 0x38], edx
mov dword [edi + 0x70], 0
mov edx, dword [edi + 0x18]
test edx, edx
je 0x101463de
test byte [edx + 0x44], 2
je 0x101463b9
mov dword [edx + 0x38], ebx
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], ebx
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x101463aa
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov eax, ebx
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
push ebx
movzx edx, byte [edi + 0x16c]
push ebx
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.1014f8d0
add esp, 0x14
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
push edi
push ebx
push ebx
push 1
call fcn.101468f0
add esp, 0x10
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0xc], 0
jne 0x10144d92
cmp ebx, 1
jg 0x10144d92
or eax, 0x40
jmp 0x10144d95
cmp dword [ebp - 0xc], 0
jne 0x10144d82
cmp ebx, 1
jg 0x10144d82
movzx eax, byte [esi + 0x4f]
or eax, 0x20
jmp 0x10144d92
xor eax, eax
mov dword [esi + 0xc], ecx
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0xc]
test edx, edx
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
lea ecx, [edx + 1]
jne 0x10146459
mov ecx, 2
xor eax, eax
mov dword [esi + 0xc], ecx
mov esi, dword [ebp - 0x1c]
mov esp, ebp
pop ebp
ret
xor eax, eax
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret