Function at 0x548126
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 0x54904e
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 0x5473b4
lea eax, [edx - 1]
mov dword [ebp - 4], eax
mov dword [esi + 0xc], eax
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x5473fa
test al, 0x20
je 0x5473fa
mov ecx, dword [ebp + 0xc]
movsx ecx, byte [ecx]
cmp ecx, 2
je 0x5484c9
and eax, 0xffffffdf
cmp ecx, 1
je 0x5484ae
and eax, 0xffffffbf
push edi
mov byte [esi + 0x4f], al
mov dword [ebp - 0x38], edx
call fcn.00569da0
mov edx, dword [ebp - 0x38]
add esp, 4
test eax, eax
jne 0x54843d
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x5473a6
test al, 0x20
jne 0x54901b
mov edx, dword [ebp - 4]
mov dword [esi + 0xc], edx
or eax, 0x20
mov byte [esi + 0x4f], al
jmp 0x5473fa
mov eax, dword [ebp + 0xc]
movsx edx, byte [eax]
cmp edx, 2
je 0x548ffc
movzx eax, byte [esi + 0x4f]
and eax, 0xffffffdf
cmp edx, 1
je 0x548fe1
and eax, 0xffffffbf
push edi
mov byte [esi + 0x4f], al
call fcn.00569da0
add esp, 4
test eax, eax
jne 0x548f70
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x5473fa
test al, 0x20
jne 0x5484e4
movsx edx, byte [esi + 0x48]
add edx, 0xfffffffe
cmp edx, 0x1a
ja case.0x547411.3
mov edx, dword [edx*4 + 0x5c4920]
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 0x547479
mov edx, ecx
sub edx, dword [ebp - 0x1bc]
cmp edx, 0x200
mov eax, dword [edi + 0xf8]
jge 0x547452
mov edx, 0x200
shr eax, 3
cmp edx, eax
jge 0x54745b
mov edx, eax
push edx
push edi
call fcn.005664c0
add esp, 8
test eax, eax
jne 0x54852a
mov edx, dword [esi + 0x38]
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x1b4], edx
cmp dword [ebp - 0x1b4], 0
jg 0x5484fe
mov edx, dword [edi + 0x4c]
cmp eax, edx
mov dword [edi + 0x128], 0
ja 0x547499
mov eax, edx
mov dword [edi + 0x4c], eax
or byte [edi + 0x171], 0x80
jmp 0x547339
mov edx, dword [edi + 0x7c]
test edx, edx
je 0x5474c7
movzx eax, byte [edx + 0x1e]
test eax, eax
je 0x5474c7
mov byte [edx + 0x1e], 0
mov dword [ebp - 0x1b8], 1
jmp 0x5474d1
mov dword [ebp - 0x1b8], 0
movzx eax, byte [edi + 0x16d]
test al, 0x40
je 0x5474e9
cmp byte [edi + 0x156], 1
je 0x5485af
push edi
call fcn.00561e50
add esp, 4
test eax, eax
jne 0x54868a
add dword [edi + 0x98], 1
push 0
push edi
adc dword [edi + 0x9c], 0
and byte [edi + 0x16f], 0xfb
call fcn.00563340
add esp, 8
test eax, eax
jne 0x548605
movsx eax, byte [edi + 0x154]
mov dword [ebp - 0x1c4], eax
lea eax, [eax - 1]
cmp eax, 7
ja case.default.0x547542
mov eax, dword [eax*4 + 0x5c49a0]
jmp eax
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x547550
mov dword [edi + 0x3c], ecx
jmp 0x547556
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 0x547686
mov eax, dword [edi + 0x18]
test eax, eax
je 0x5485e6
test byte [eax + 0x44], 2
je 0x5475af
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 0x54759d
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.005640b0
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 0x5475e5
add ecx, 4
jmp 0x5475eb
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 0x547686
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x547613
mov dword [edi + 0x3c], ecx
jmp 0x547619
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 0x54764f
test byte [edi + 0x16a], 0x40
je 0x54764f
test byte [edi + 0x16b], 8
je 0x54764f
cmp dword [ebp - 0x1c4], 1
je 0x547654
mov dword [edi + 0x44], eax
jmp 0x547686
mov eax, dword [ebp - 0x1ec]
lea eax, [ecx + eax - 2]
mov dword [edi + 0x44], eax
jmp 0x547686
push 0x464
push str.for_wseq_fmt.c
push 2
push 8
call fcn.00560040
add esp, 0x10
movzx edx, byte [edi + 0x168]
mov ecx, dword [edi + 0x3c]
mov eax, dword [edi + 0x44]
test dl, 4
je 0x5476a6
test byte [edi + 0x16a], 0x40
je 0x5476a6
test byte [edi + 0x16b], 8
je 0x5476a6
cmp byte [edi + 0x154], 1
je 0x5476f3
movsx edx, byte [edi + 0x156]
cmp edx, 2
jne 0x5476ce
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x5476f3
cmp edx, 6
je 0x5476f3
cmp edx, 8
je 0x5476f3
dec eax
mov dword [edi + 0x44], eax
jmp 0x5476f3
cmp edx, 1
jne 0x5476f3
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x5476ed
cmp edx, 6
je 0x5476ed
cmp edx, 8
je 0x5476ed
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.0059f940
add esp, 0xc
mov dword [edi + 0x128], 0
cmp dword [ebp - 0x1b8], 0
je 0x547339
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
jmp 0x547339
cmp ebx, 2
jge 0x547339
jmp 0x5486fb
test byte [edi + 0x168], 4
je 0x547753
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
mov edx, dword [edi + 0x7c]
mov dword [edx + 0xc], edi
jmp 0x547339
or byte [edi + 0x16d], 0x40
jmp 0x547339
mov edx, dword [ebp + 0xc]
movsx edx, byte [edx]
cmp edx, 1
je 0x548b8b
cmp edx, 2
je 0x548b6c
test byte [esi + 0x4e], 0x20
jne 0x547822
test byte [edi + 0x168], 2
je 0x5477b8
test eax, 0x80
je 0x5477b8
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.00566430
add esp, 0x14
test eax, eax
jne 0x5489f7
mov eax, dword [edi + 0x18]
test eax, eax
je 0x5489d8
test byte [eax + 0x44], 2
je 0x5477f8
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 0x5477e6
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.005640b0
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 0x547841
movzx eax, byte [edx + 0x1e]
test eax, eax
je 0x547841
mov byte [edx + 0x1e], 0
mov dword [ebp - 0x1c8], 1
jmp 0x54784b
mov dword [ebp - 0x1c8], 0
cmp dword [edi + 0x128], 0
je 0x547879
movzx eax, byte [edi + 0x171]
test eax, 0x80
mov dword [edi + 0x128], 0
jne 0x547879
cmp dword [edi + 0x130], 0
jne 0x547ac4
movzx eax, byte [edi + 0x16d]
test al, 0x40
je 0x547891
cmp byte [edi + 0x156], 1
je 0x548a20
push edi
call fcn.00561e50
add esp, 4
test eax, eax
jne 0x548afb
add dword [edi + 0x98], 1
push 0
push edi
adc dword [edi + 0x9c], 0
and byte [edi + 0x16f], 0xfb
call fcn.00563340
add esp, 8
test eax, eax
jne 0x548a76
movsx eax, byte [edi + 0x154]
mov dword [ebp - 0x1e4], eax
lea eax, [eax - 1]
cmp eax, 7
ja case.default.0x5478ea
mov eax, dword [eax*4 + 0x5c49c0]
jmp eax
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x5478f8
mov dword [edi + 0x3c], ecx
jmp 0x5478fe
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 0x547a2e
mov eax, dword [edi + 0x18]
test eax, eax
je 0x548a57
test byte [eax + 0x44], 2
je 0x547957
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 0x547945
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.005640b0
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 0x54798d
add ecx, 4
jmp 0x547993
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 0x547a2e
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x5479bb
mov dword [edi + 0x3c], ecx
jmp 0x5479c1
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 0x5479f7
test byte [edi + 0x16a], 0x40
je 0x5479f7
test byte [edi + 0x16b], 8
je 0x5479f7
cmp dword [ebp - 0x1e4], 1
je 0x5479fc
mov dword [edi + 0x44], eax
jmp 0x547a2e
mov eax, dword [ebp - 0x3b8]
lea eax, [ecx + eax - 2]
mov dword [edi + 0x44], eax
jmp 0x547a2e
push 0x534
push str.for_wseq_fmt.c
push 2
push 8
call fcn.00560040
add esp, 0x10
movzx edx, byte [edi + 0x168]
mov ecx, dword [edi + 0x3c]
mov eax, dword [edi + 0x44]
test dl, 4
je 0x547a4e
test byte [edi + 0x16a], 0x40
je 0x547a4e
test byte [edi + 0x16b], 8
je 0x547a4e
cmp byte [edi + 0x154], 1
je 0x547a9b
movsx edx, byte [edi + 0x156]
cmp edx, 2
jne 0x547a76
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x547a9b
cmp edx, 6
je 0x547a9b
cmp edx, 8
je 0x547a9b
dec eax
mov dword [edi + 0x44], eax
jmp 0x547a9b
cmp edx, 1
jne 0x547a9b
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x547a95
cmp edx, 6
je 0x547a95
cmp edx, 8
je 0x547a95
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.0059f940
add esp, 0xc
mov dword [edi + 0x130], 1
and byte [edi + 0x171], 0x7f
cmp dword [ebp - 0x1c8], 0
je 0x547ad4
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
mov eax, dword [edi + 0x3c]
mov dword [edi + 0x4c], eax
jmp 0x547339
cmp ebx, 1
jle 0x547bbb
mov eax, dword [ebp - 0x36c]
cmp eax, 7
je 0x547afc
cmp eax, 8
jne 0x547b89
cmp dword [ebp - 0x20], 0
je 0x547b1b
mov eax, dword [ebp - 0x1cc]
dec ebx
add dword [ebp - 0x1d8], eax
mov dword [ebp - 0x20], 0
jmp 0x547daf
cmp dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x368]
je 0x547b2f
mov eax, 1
xor ecx, ecx
mov dword [ebp - 0x20], eax
test edx, edx
jle 0x547b63
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 0x547b40
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.005666e0
add esp, 0xc
jmp 0x547ba4
mov edx, dword [ebp - 0x20]
test edx, edx
mov eax, dword [ebp - 0x1cc]
je 0x547b9b
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 0x547daf
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.005661c0
add esp, 0x10
test eax, eax
jne 0x548eff
mov ecx, dword [ebp - 0x1d0]
cmp ecx, 2
je 0x54902d
cmp ecx, 1
je 0x54870a
mov eax, dword [ebp - 0x36c]
cmp eax, 7
jl 0x547d1b
cmp eax, 8
jg 0x547d1b
mov ebx, dword [ebp - 0x1cc]
test ebx, ebx
je 0x547c28
mov eax, dword [ebp - 0x1d4]
cdq
idiv ebx
mov ebx, eax
jmp 0x547c3b
test byte [edi + 0x168], 2
je 0x547d0d
mov ebx, dword [ebp - 0x1d4]
test ebx, ebx
je 0x547d0f
cmp ecx, 0x34
je 0x547c52
cmp ecx, 0x1c
jl 0x547c5f
cmp ecx, 0x2c
jg 0x547c5f
mov eax, 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], eax
jmp 0x547c66
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x368]
test eax, eax
jle 0x547cb2
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 0x547c78
mov edi, dword [ebp - 0x1b0]
test eax, eax
mov ecx, 0
jle 0x547ce4
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 0x547cc1
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.005666e0
add esp, 0xc
jmp 0x547d9e
xor ebx, ebx
mov dword [ebp - 0x18], 1
jmp 0x547db5
cmp eax, 6
je 0x547d25
cmp eax, 5
jne 0x547d7c
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 0x547d5a
mov eax, ebx
cdq
mov ebx, dword [ebp - 0x1dc]
idiv ebx
mov ebx, eax
test ecx, ecx
jne 0x547d65
jmp 0x547daf
test ecx, ecx
jne 0x547d63
mov ebx, 0
je 0x547daf
test ebx, ebx
jne 0x547d9e
mov dword [edi + 0x128], 1
mov dword [ebp - 0x18], 1
jmp 0x547db5
cmp ecx, 0x34
je 0x547d8b
cmp ecx, 0x1c
jl 0x547d99
cmp ecx, 0x2c
jg 0x547d99
mov dword [ebp - 0x20], 1
mov ebx, 2
jmp 0x547d9e
mov ebx, 1
mov dword [edi + 0x128], 0
or byte [edi + 0x171], 0x80
cmp dword [ebp - 0x18], 0
je 0x547dd1
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x547dc8
mov dword [esi + 0xc], 2
jmp 0x547339
inc eax
mov dword [esi + 0xc], eax
jmp 0x547339
mov eax, dword [esi]
and byte [esi + 0x4f], 0xf7
movsx ecx, byte [esi + 0x48]
movzx edx, byte [eax + 0x16e]
test edx, 0x80
je 0x547e0d
mov eax, dword [ecx*4 + 0x5cbf40]
test eax, eax
je 0x547e0d
mov edx, dword [ebp - 0x1d0]
movsx eax, byte [eax + edx]
test eax, eax
je 0x547e0d
mov dword [ebp - 0x1d0], eax
movsx ecx, byte [esi + 0x48]
lea eax, [ecx - 0x13]
cmp eax, 0x20
ja case.default.0x547e20
mov eax, dword [eax*4 + 0x5c49e0]
jmp eax
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x547e61
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 + 0x5cbde0]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x548b99
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x548274
jmp 0x5482a3
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x548274
movzx eax, byte [esi + 0x50]
mov dword [ebp - 0x2c], eax
jmp 0x5482a3
mov eax, dword [ebp - 0x1d0]
movsx edx, word [eax*2 + 0x5cbde0]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x548bc0
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x548274
jmp 0x547e6d
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x547edf
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 + 0x5cc1ad]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x548be7
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x548274
jmp 0x5482a3
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x548274
jmp 0x547e6d
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x547f22
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 + 0x5cc19b]
mov dword [esi + 0x38], edx
jb 0x548274
jmp 0x5482a3
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x548274
jmp 0x547e6d
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x547fc3
mov eax, dword [ebp - 0x1d0]
cmp eax, 0x19
mov dword [ebp - 0x3bc], eax
jge 0x548c0e
cmp dword [ebp - 0x3bc], 5
jl 0x547f93
cmp dword [ebp - 0x3bc], 0x11
jg 0x547f93
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 + 0x5cc19b]
mov dword [esi + 0x38], edx
jb 0x548274
jmp 0x5482a3
cmp dword [ebp - 0x3bc], 0x39
je 0x547fa9
cmp dword [ebp - 0x3bc], 0x38
jne 0x5481ae
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x548274
jmp 0x547e6d
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x548274
jmp 0x547e6d
mov edx, dword [esi + 0x38]
test edx, edx
mov eax, dword [ebp - 0x1d0]
jne 0x548020
cmp eax, 5
jl 0x548007
cmp eax, 0x11
jg 0x548007
or byte [esi + 0x50], 2
mov eax, dword [ebp - 0x1d0]
movsx edx, byte [eax + 0x5cc19b]
mov dword [esi + 0x38], edx
mov eax, dword [ebp - 0x1d0]
jmp 0x548020
cmp eax, 0x39
je 0x548011
cmp eax, 0x38
jne 0x548020
mov edx, dword [ebp - 0x1cc]
mov dword [esi + 0x38], edx
mov eax, dword [ebp - 0x1d0]
cmp eax, 0x19
jge case.0x547e20.30
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x548274
jmp 0x547e6d
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x548072
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 + 0x5cbd9a]
add edx, eax
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x548274
jmp 0x5482a3
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x548274
jmp 0x547e6d
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x548274
jmp 0x548299
mov eax, dword [ebp - 0x1d0]
movsx edx, byte [eax + 0x5cc1ad]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x548c72
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x548274
jmp 0x547e6d
mov eax, dword [ebp - 0x1d0]
cmp eax, 5
jl 0x5481ae
cmp eax, 0x11
jg 0x5481ae
add ecx, 0xffffffd8
mov edx, 2
mov dword [esi + 0x38], 2
cmp ecx, 0x20
jb 0x548274
jmp 0x547e6d
mov eax, dword [ebp - 0x1d0]
cmp eax, 5
jl 0x5481ae
cmp eax, 0x11
jg 0x5481ae
add ecx, 0xffffffd8
movsx edx, byte [eax + 0x5cc19b]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x548274
jmp 0x547e6d
mov eax, dword [ebp - 0x1d0]
cmp eax, 0x19
mov dword [ebp - 0x3b4], eax
jge 0x548c99
cmp dword [ebp - 0x3b4], 5
jl 0x548168
cmp dword [ebp - 0x3b4], 0x11
jg 0x548168
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, byte [eax + 0x5cc19b]
mov dword [esi + 0x38], edx
jb 0x548274
jmp 0x547e6d
cmp dword [ebp - 0x3b4], 0x39
je 0x54817a
cmp dword [ebp - 0x3b4], 0x38
jne 0x5481ae
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x548274
jmp 0x547e6d
mov eax, dword [ebp - 0x1d0]
cmp eax, 0x19
mov dword [ebp - 0x1e0], eax
jl 0x5481ae
cmp dword [ebp - 0x1e0], 0x34
jle 0x54821a
add ecx, 0xffffffd8
mov eax, 0x3d
cmp ecx, 0x20
jb 0x548276
mov edx, dword [edi + 0x18]
test edx, edx
je 0x548ce6
test byte [edx + 0x44], 2
je 0x5481f5
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x5481e8
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.005640b0
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 + 0x5cbd98]
mov dword [ebp - 0x370], edx
mov dword [esi + 0x38], edx
movzx edx, word [eax*8 + 0x5cbd9c]
movzx eax, word [eax*8 + 0x5cbd9e]
mov word [esi + 0x40], dx
mov word [esi + 0x42], ax
mov edx, dword [ebp - 0x370]
jb 0x548274
jmp 0x547e6d
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x548274
jmp 0x547e6d
add ecx, 0xffffffd8
cmp ecx, 0x20
jae 0x548299
xor eax, eax
mov edx, 1
shl edx, cl
test dl, 0x25
je 0x548291
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x38]
cmp ecx, edx
jge 0x54828e
mov ecx, edx
mov dword [esi + 0x38], ecx
test eax, eax
jne 0x5481bf
movzx eax, byte [esi + 0x50]
mov edx, dword [esi + 0x38]
mov dword [ebp - 0x2c], eax
test byte [ebp - 0x2c], 2
je 0x54834d
cmp edx, 0x40
ja 0x5482c4
mov dword [ebp - 0x24], 0
lea eax, [ebp - 0x3b0]
mov dword [ebp - 0x28], eax
jmp 0x5482e1
lea eax, [ebp - 0x28]
push eax
push 0
push edx
call fcn.005586b0
add esp, 0xc
test eax, eax
jne 0x548d71
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
push dword [esi + 0x38]
push 0x20
push eax
call fcn.0059f940
push dword [ebp - 0x28]
push esi
lea eax, [ebp - 0x1d8]
push eax
call fcn.0056a830
add esp, 0x18
test eax, eax
je 0x54831c
cmp eax, 0x3f
jne 0x548d00
test byte [edi + 0x16f], 8
jne 0x54831c
mov dword [esi + 0x10], 0x3f
mov edx, dword [esi + 0x38]
test edx, edx
je 0x548338
mov eax, dword [ebp - 0x28]
cmp byte [eax], 0x20
jne 0x54834d
inc eax
mov dword [ebp - 0x28], eax
mov edx, dword [esi + 0x38]
dec edx
mov dword [esi + 0x38], edx
jne 0x548323
movsx eax, word [esi + 0x40]
test eax, eax
jne 0x54834d
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 0x548394
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x34]
add eax, edx
cmp eax, 0x200
mov edx, dword [edi + 0xf8]
jge 0x548379
mov eax, 0x200
shr edx, 3
cmp eax, edx
jge 0x548382
mov eax, edx
push eax
push edi
call fcn.005664c0
add esp, 8
test eax, eax
jne 0x548e7a
movzx eax, byte [esi + 0x50]
test al, 2
je 0x548408
cmp dword [esi + 0x38], 0
je 0x5483e5
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 0x548de2
mov dword [esi + 0x38], eax
mov eax, dword [ebp - 0x28]
movsx eax, byte [eax]
cmp eax, 0x20
je 0x548de2
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 0x5483bd
jmp 0x548de2
and eax, 0xfffffffd
mov byte [esi + 0x50], al
mov dword [esi + 0x38], 0
cmp dword [ebp - 0x24], 0
je 0x548403
push dword [ebp - 0x24]
call fcn.00558770
add esp, 4
mov edx, dword [edi + 0x3c]
jmp 0x54842c
push dword [edi + 0x3c]
push esi
lea eax, [ebp - 0x1d8]
push eax
call fcn.0056a830
add esp, 0xc
test eax, eax
jne 0x548deb
mov edx, dword [edi + 0x3c]
add edx, dword [esi + 0x38]
mov dword [edi + 0x3c], edx
mov eax, dword [edi + 0x4c]
cmp edx, eax
ja 0x548435
mov edx, eax
mov dword [edi + 0x4c], edx
jmp 0x547339
mov edx, dword [edi + 0x18]
test edx, edx
je 0x548494
test byte [edx + 0x44], 2
je 0x54846f
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x548462
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.005640b0
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.0055df70
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 0x547379
cmp ebx, 1
jg 0x547379
or eax, 0x40
jmp 0x54737c
cmp dword [ebp - 0x20], 0
jne 0x54736d
cmp ebx, 1
jg 0x54736d
or eax, 0x20
jmp 0x547379
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x5484ef
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 0x54850c
mov ebx, dword [ebp - 0x1e8]
jmp 0x547486
mov eax, dword [edi + 0x18]
test eax, eax
je 0x548590
test byte [eax + 0x44], 2
je 0x548566
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 0x548554
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.005640b0
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.0055df70
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 0x5485d9
cmp edx, 0x2b
jne 0x5485cb
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x16d]
and eax, 0xffffffbf
mov byte [edi + 0x16d], al
jmp 0x5474e9
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x16d]
jmp 0x5485cb
push edi
mov eax, 0x2c
push eax
push eax
push 1
call fcn.0055df70
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 0x54866b
test byte [eax + 0x44], 2
je 0x548641
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 0x54862f
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.005640b0
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.0055df70
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 0x5486e1
test byte [edx + 0x44], 2
je 0x5486bc
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x5486af
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.005640b0
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.0055df70
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 0x548914
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x54871d
movzx eax, byte [eax + 0x1e]
test eax, eax
jne 0x548801
cmp dword [edi + 0x128], 0
jne 0x548735
cmp dword [ebp - 0x18], 0
je 0x548765
cmp dword [edi + 0x130], 0
je 0x548765
movzx eax, byte [edi + 0x171]
test eax, 0x80
mov dword [edi + 0x128], 0
je 0x548758
and eax, 0x7f
mov byte [edi + 0x171], al
jmp 0x548765
cmp dword [edi + 0x130], 0
jne 0x548801
movzx eax, byte [edi + 0x16d]
test al, 0x40
je 0x54877d
cmp byte [edi + 0x156], 1
je 0x5489a1
push edi
call fcn.00561e50
add esp, 4
test eax, eax
je 0x5487e5
mov edx, dword [edi + 0x18]
test edx, edx
je 0x548953
test byte [edx + 0x44], 2
je 0x5487c0
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x5487b3
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.005640b0
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 0x548879
push dword [esi + 4]
and eax, 0xfffffffd
mov byte [esi + 0x4f], al
call fcn.00558770
add esp, 4
test eax, eax
je 0x548879
mov edx, dword [edi + 0x18]
test edx, edx
je 0x54896d
test byte [edx + 0x44], 2
je 0x548854
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x548847
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.005640b0
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 0x5488e1
mov eax, dword [edi + 0x18]
test eax, eax
je 0x548987
test byte [eax + 0x44], 2
je 0x5488bc
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 0x5488ac
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.005640b0
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.0055c0e0
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 0x54892f
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.00566120
add esp, 0xc
cmp eax, 2
je 0x548919
cmp eax, 1
jne 0x547339
jmp 0x54870a
push edi
push eax
push eax
push 1
call fcn.0055df70
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.0055df70
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.0055df70
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 0x5489cb
cmp edx, 0x2b
jne 0x5489bd
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x16d]
and eax, 0xffffffbf
mov byte [edi + 0x16d], al
jmp 0x54877d
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x16d]
jmp 0x5489bd
push edi
mov eax, 0x69
push eax
push eax
push 1
call fcn.0055df70
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 0x54870a
cmp ebx, 2
jge 0x54870a
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 0x548a4a
cmp edx, 0x2b
jne 0x548a3c
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x16d]
and eax, 0xffffffbf
mov byte [edi + 0x16d], al
jmp 0x547891
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x16d]
jmp 0x548a3c
push edi
mov eax, 0x2c
push eax
push eax
push 1
call fcn.0055df70
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 0x548adc
test byte [eax + 0x44], 2
je 0x548ab2
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 0x548aa0
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.005640b0
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.0055df70
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 0x548b52
test byte [edx + 0x44], 2
je 0x548b2d
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x548b20
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.005640b0
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.0055df70
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 0x547822
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 0x54870a
jmp 0x547822
mov edx, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
shl edx, 3
cmp edx, 0x11
jge 0x548baf
mov edx, 0x11
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x548274
jmp 0x5482a3
mov edx, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
shl edx, 3
cmp edx, 0x11
jge 0x548bd6
mov edx, 0x11
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x548274
jmp 0x547e6d
mov eax, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
lea edx, [eax + eax*2]
cmp edx, 7
jge 0x548bfd
mov edx, 7
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x548274
jmp 0x5482a3
cmp dword [ebp - 0x3bc], 0x34
jg 0x547f93
mov edx, eax
movzx eax, byte [esi + 0x50]
or eax, 2
movsx edx, word [edx*8 + 0x5cbd98]
mov dword [ebp - 0x2c], eax
mov byte [esi + 0x50], al
movsx eax, word [esi + 0x40]
test eax, eax
mov dword [esi + 0x38], edx
jne 0x548c4f
mov eax, dword [ebp - 0x3bc]
movzx eax, word [eax*8 + 0x5cbd9c]
mov word [esi + 0x40], ax
mov eax, dword [ebp - 0x3bc]
add ecx, 0xffffffd8
cmp ecx, 0x20
movzx eax, word [eax*8 + 0x5cbd9e]
mov word [esi + 0x42], ax
jb 0x548274
jmp 0x5482a3
mov eax, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
lea edx, [eax + eax*2]
cmp edx, 7
jge 0x548c88
mov edx, 7
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x548274
jmp 0x547e6d
cmp dword [ebp - 0x3b4], 0x34
jg 0x548168
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, word [eax*8 + 0x5cbd98]
mov dword [ebp - 0x370], edx
mov dword [esi + 0x38], edx
movzx edx, word [eax*8 + 0x5cbd9c]
movzx eax, word [eax*8 + 0x5cbd9e]
mov word [esi + 0x40], dx
mov word [esi + 0x42], ax
mov edx, dword [ebp - 0x370]
jb 0x548274
jmp 0x547e6d
push edi
push eax
push eax
push 1
call fcn.0055df70
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 0x548d57
test byte [edx + 0x44], 2
je 0x548d32
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x548d25
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.005640b0
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.0055df70
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 0x548dc8
test byte [edx + 0x44], 2
je 0x548da3
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x548d96
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.005640b0
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.0055df70
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 0x5483e5
cmp eax, 0x3f
jne 0x548e09
test byte [edi + 0x16f], 8
jne 0x548423
mov dword [esi + 0x10], 0x3f
jmp 0x548423
mov edx, dword [edi + 0x18]
test edx, edx
je 0x548e60
test byte [edx + 0x44], 2
je 0x548e3b
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x548e2e
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.005640b0
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.0055df70
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 0x548ee0
test byte [eax + 0x44], 2
je 0x548eb6
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 0x548ea4
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.005640b0
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.0055df70
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 0x548f56
test byte [edx + 0x44], 2
je 0x548f31
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x548f24
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.005640b0
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.0055df70
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 0x548fc7
test byte [edx + 0x44], 2
je 0x548fa2
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x548f95
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.005640b0
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.0055df70
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 0x5473d3
cmp ebx, 1
jg 0x5473d3
or eax, 0x40
jmp 0x5473d6
cmp dword [ebp - 0x20], 0
jne 0x5473c3
cmp ebx, 1
jg 0x5473c3
movzx eax, byte [esi + 0x4f]
or eax, 0x20
jmp 0x5473d3
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 0x549042
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