Function at 0x416873
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 0x41798e
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 0x415cf4
lea eax, [edx - 1]
mov dword [ebp - 4], eax
mov dword [esi + 0xc], eax
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x415d3a
test al, 0x20
je 0x415d3a
mov ecx, dword [ebp + 0xc]
movsx ecx, byte [ecx]
cmp ecx, 2
je 0x416e09
and eax, 0xffffffdf
cmp ecx, 1
je 0x416dee
and eax, 0xffffffbf
push edi
mov byte [esi + 0x4f], al
mov dword [ebp - 0x38], edx
call fcn.00432630
mov edx, dword [ebp - 0x38]
add esp, 4
test eax, eax
jne 0x416d7d
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x415ce6
test al, 0x20
jne 0x41795b
mov edx, dword [ebp - 4]
mov dword [esi + 0xc], edx
or eax, 0x20
mov byte [esi + 0x4f], al
jmp 0x415d3a
mov eax, dword [ebp + 0xc]
movsx edx, byte [eax]
cmp edx, 2
je 0x41793c
movzx eax, byte [esi + 0x4f]
and eax, 0xffffffdf
cmp edx, 1
je 0x417921
and eax, 0xffffffbf
push edi
mov byte [esi + 0x4f], al
call fcn.00432630
add esp, 4
test eax, eax
jne 0x4178b0
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x415d3a
test al, 0x20
jne 0x416e24
movsx edx, byte [esi + 0x48]
add edx, 0xfffffffe
cmp edx, 0x1a
ja case.0x415d51.3
mov edx, dword [edx*4 + 0x4cbf60]
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 0x415db9
mov edx, ecx
sub edx, dword [ebp - 0x1bc]
cmp edx, 0x200
mov eax, dword [edi + 0xf8]
jge 0x415d92
mov edx, 0x200
shr eax, 3
cmp edx, eax
jge 0x415d9b
mov edx, eax
push edx
push edi
call fcn.0042eb90
add esp, 8
test eax, eax
jne 0x416e6a
mov edx, dword [esi + 0x38]
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x1b4], edx
cmp dword [ebp - 0x1b4], 0
jg 0x416e3e
mov edx, dword [edi + 0x4c]
cmp eax, edx
mov dword [edi + 0x128], 0
ja 0x415dd9
mov eax, edx
mov dword [edi + 0x4c], eax
or byte [edi + 0x171], 0x80
jmp 0x415c79
mov edx, dword [edi + 0x7c]
test edx, edx
je 0x415e07
movzx eax, byte [edx + 0x1e]
test eax, eax
je 0x415e07
mov byte [edx + 0x1e], 0
mov dword [ebp - 0x1b8], 1
jmp 0x415e11
mov dword [ebp - 0x1b8], 0
movzx eax, byte [edi + 0x16d]
test al, 0x40
je 0x415e29
cmp byte [edi + 0x156], 1
je 0x416eef
push edi
call fcn.0042bb50
add esp, 4
test eax, eax
jne 0x416fca
add dword [edi + 0x98], 1
push 0
push edi
adc dword [edi + 0x9c], 0
and byte [edi + 0x16f], 0xfb
call fcn.0042d040
add esp, 8
test eax, eax
jne 0x416f45
movsx eax, byte [edi + 0x154]
mov dword [ebp - 0x1c4], eax
lea eax, [eax - 1]
cmp eax, 7
ja case.default.0x415e82
mov eax, dword [eax*4 + 0x4cbfe0]
jmp eax
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x415e90
mov dword [edi + 0x3c], ecx
jmp 0x415e96
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 0x415fc6
mov eax, dword [edi + 0x18]
test eax, eax
je 0x416f26
test byte [eax + 0x44], 2
je 0x415eef
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 0x415edd
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.00425180
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 0x415f25
add ecx, 4
jmp 0x415f2b
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 0x415fc6
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x415f53
mov dword [edi + 0x3c], ecx
jmp 0x415f59
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 0x415f8f
test byte [edi + 0x16a], 0x40
je 0x415f8f
test byte [edi + 0x16b], 8
je 0x415f8f
cmp dword [ebp - 0x1c4], 1
je 0x415f94
mov dword [edi + 0x44], eax
jmp 0x415fc6
mov eax, dword [ebp - 0x1ec]
lea eax, [ecx + eax - 2]
mov dword [edi + 0x44], eax
jmp 0x415fc6
push 0x464
push str.for_wseq_fmt.c
push 2
push 8
call fcn.004115e0
add esp, 0x10
movzx edx, byte [edi + 0x168]
mov ecx, dword [edi + 0x3c]
mov eax, dword [edi + 0x44]
test dl, 4
je 0x415fe6
test byte [edi + 0x16a], 0x40
je 0x415fe6
test byte [edi + 0x16b], 8
je 0x415fe6
cmp byte [edi + 0x154], 1
je 0x416033
movsx edx, byte [edi + 0x156]
cmp edx, 2
jne 0x41600e
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x416033
cmp edx, 6
je 0x416033
cmp edx, 8
je 0x416033
dec eax
mov dword [edi + 0x44], eax
jmp 0x416033
cmp edx, 1
jne 0x416033
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x41602d
cmp edx, 6
je 0x41602d
cmp edx, 8
je 0x41602d
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.004abc00
add esp, 0xc
mov dword [edi + 0x128], 0
cmp dword [ebp - 0x1b8], 0
je 0x415c79
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
jmp 0x415c79
cmp ebx, 2
jge 0x415c79
jmp 0x41703b
test byte [edi + 0x168], 4
je 0x416093
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
mov edx, dword [edi + 0x7c]
mov dword [edx + 0xc], edi
jmp 0x415c79
or byte [edi + 0x16d], 0x40
jmp 0x415c79
mov edx, dword [ebp + 0xc]
movsx edx, byte [edx]
cmp edx, 1
je 0x4174cb
cmp edx, 2
je 0x4174ac
test byte [esi + 0x4e], 0x20
jne 0x416162
test byte [edi + 0x168], 2
je 0x4160f8
test eax, 0x80
je 0x4160f8
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.0042a890
add esp, 0x14
test eax, eax
jne 0x417337
mov eax, dword [edi + 0x18]
test eax, eax
je 0x417318
test byte [eax + 0x44], 2
je 0x416138
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 0x416126
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.00425180
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 0x416181
movzx eax, byte [edx + 0x1e]
test eax, eax
je 0x416181
mov byte [edx + 0x1e], 0
mov dword [ebp - 0x1c8], 1
jmp 0x41618b
mov dword [ebp - 0x1c8], 0
cmp dword [edi + 0x128], 0
je 0x4161b9
movzx eax, byte [edi + 0x171]
test eax, 0x80
mov dword [edi + 0x128], 0
jne 0x4161b9
cmp dword [edi + 0x130], 0
jne 0x416404
movzx eax, byte [edi + 0x16d]
test al, 0x40
je 0x4161d1
cmp byte [edi + 0x156], 1
je 0x417360
push edi
call fcn.0042bb50
add esp, 4
test eax, eax
jne 0x41743b
add dword [edi + 0x98], 1
push 0
push edi
adc dword [edi + 0x9c], 0
and byte [edi + 0x16f], 0xfb
call fcn.0042d040
add esp, 8
test eax, eax
jne 0x4173b6
movsx eax, byte [edi + 0x154]
mov dword [ebp - 0x1e4], eax
lea eax, [eax - 1]
cmp eax, 7
ja case.default.0x41622a
mov eax, dword [eax*4 + 0x4cc000]
jmp eax
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x416238
mov dword [edi + 0x3c], ecx
jmp 0x41623e
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 0x41636e
mov eax, dword [edi + 0x18]
test eax, eax
je 0x417397
test byte [eax + 0x44], 2
je 0x416297
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 0x416285
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.00425180
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 0x4162cd
add ecx, 4
jmp 0x4162d3
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 0x41636e
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x4162fb
mov dword [edi + 0x3c], ecx
jmp 0x416301
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 0x416337
test byte [edi + 0x16a], 0x40
je 0x416337
test byte [edi + 0x16b], 8
je 0x416337
cmp dword [ebp - 0x1e4], 1
je 0x41633c
mov dword [edi + 0x44], eax
jmp 0x41636e
mov eax, dword [ebp - 0x3b8]
lea eax, [ecx + eax - 2]
mov dword [edi + 0x44], eax
jmp 0x41636e
push 0x534
push str.for_wseq_fmt.c
push 2
push 8
call fcn.004115e0
add esp, 0x10
movzx edx, byte [edi + 0x168]
mov ecx, dword [edi + 0x3c]
mov eax, dword [edi + 0x44]
test dl, 4
je 0x41638e
test byte [edi + 0x16a], 0x40
je 0x41638e
test byte [edi + 0x16b], 8
je 0x41638e
cmp byte [edi + 0x154], 1
je 0x4163db
movsx edx, byte [edi + 0x156]
cmp edx, 2
jne 0x4163b6
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x4163db
cmp edx, 6
je 0x4163db
cmp edx, 8
je 0x4163db
dec eax
mov dword [edi + 0x44], eax
jmp 0x4163db
cmp edx, 1
jne 0x4163db
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x4163d5
cmp edx, 6
je 0x4163d5
cmp edx, 8
je 0x4163d5
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.004abc00
add esp, 0xc
mov dword [edi + 0x130], 1
and byte [edi + 0x171], 0x7f
cmp dword [ebp - 0x1c8], 0
je 0x416414
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
mov eax, dword [edi + 0x3c]
mov dword [edi + 0x4c], eax
jmp 0x415c79
cmp ebx, 1
jle 0x4164fb
mov eax, dword [ebp - 0x36c]
cmp eax, 7
je 0x41643c
cmp eax, 8
jne 0x4164c9
cmp dword [ebp - 0x20], 0
je 0x41645b
mov eax, dword [ebp - 0x1cc]
dec ebx
add dword [ebp - 0x1d8], eax
mov dword [ebp - 0x20], 0
jmp 0x4166ef
cmp dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x368]
je 0x41646f
mov eax, 1
xor ecx, ecx
mov dword [ebp - 0x20], eax
test edx, edx
jle 0x4164a3
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 0x416480
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.0042edb0
add esp, 0xc
jmp 0x4164e4
mov edx, dword [ebp - 0x20]
test edx, edx
mov eax, dword [ebp - 0x1cc]
je 0x4164db
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 0x4166ef
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.0042a620
add esp, 0x10
test eax, eax
jne 0x41783f
mov ecx, dword [ebp - 0x1d0]
cmp ecx, 2
je 0x41796d
cmp ecx, 1
je 0x41704a
mov eax, dword [ebp - 0x36c]
cmp eax, 7
jl 0x41665b
cmp eax, 8
jg 0x41665b
mov ebx, dword [ebp - 0x1cc]
test ebx, ebx
je 0x416568
mov eax, dword [ebp - 0x1d4]
cdq
idiv ebx
mov ebx, eax
jmp 0x41657b
test byte [edi + 0x168], 2
je 0x41664d
mov ebx, dword [ebp - 0x1d4]
test ebx, ebx
je 0x41664f
cmp ecx, 0x34
je 0x416592
cmp ecx, 0x1c
jl 0x41659f
cmp ecx, 0x2c
jg 0x41659f
mov eax, 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], eax
jmp 0x4165a6
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x368]
test eax, eax
jle 0x4165f2
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 0x4165b8
mov edi, dword [ebp - 0x1b0]
test eax, eax
mov ecx, 0
jle 0x416624
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 0x416601
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.0042edb0
add esp, 0xc
jmp 0x4166de
xor ebx, ebx
mov dword [ebp - 0x18], 1
jmp 0x4166f5
cmp eax, 6
je 0x416665
cmp eax, 5
jne 0x4166bc
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 0x41669a
mov eax, ebx
cdq
mov ebx, dword [ebp - 0x1dc]
idiv ebx
mov ebx, eax
test ecx, ecx
jne 0x4166a5
jmp 0x4166ef
test ecx, ecx
jne 0x4166a3
mov ebx, 0
je 0x4166ef
test ebx, ebx
jne 0x4166de
mov dword [edi + 0x128], 1
mov dword [ebp - 0x18], 1
jmp 0x4166f5
cmp ecx, 0x34
je 0x4166cb
cmp ecx, 0x1c
jl 0x4166d9
cmp ecx, 0x2c
jg 0x4166d9
mov dword [ebp - 0x20], 1
mov ebx, 2
jmp 0x4166de
mov ebx, 1
mov dword [edi + 0x128], 0
or byte [edi + 0x171], 0x80
cmp dword [ebp - 0x18], 0
je 0x416711
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x416708
mov dword [esi + 0xc], 2
jmp 0x415c79
inc eax
mov dword [esi + 0xc], eax
jmp 0x415c79
mov eax, dword [esi]
and byte [esi + 0x4f], 0xf7
movsx ecx, byte [esi + 0x48]
movzx edx, byte [eax + 0x16e]
test edx, 0x80
je 0x41674d
mov eax, dword [ecx*4 + 0x4cd880]
test eax, eax
je 0x41674d
mov edx, dword [ebp - 0x1d0]
movsx eax, byte [eax + edx]
test eax, eax
je 0x41674d
mov dword [ebp - 0x1d0], eax
movsx ecx, byte [esi + 0x48]
lea eax, [ecx - 0x13]
cmp eax, 0x20
ja case.default.0x416760
mov eax, dword [eax*4 + 0x4cc020]
jmp eax
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x4167a1
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 + 0x4cd720]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x4174d9
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x416bb4
jmp 0x416be3
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x416bb4
movzx eax, byte [esi + 0x50]
mov dword [ebp - 0x2c], eax
jmp 0x416be3
mov eax, dword [ebp - 0x1d0]
movsx edx, word [eax*2 + 0x4cd720]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x417500
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x416bb4
jmp 0x4167ad
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x41681f
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 + 0x4cdaed]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x417527
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x416bb4
jmp 0x416be3
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x416bb4
jmp 0x4167ad
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x416862
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 + 0x4cdadb]
mov dword [esi + 0x38], edx
jb 0x416bb4
jmp 0x416be3
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x416bb4
jmp 0x4167ad
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x416903
mov eax, dword [ebp - 0x1d0]
cmp eax, 0x19
mov dword [ebp - 0x3bc], eax
jge 0x41754e
cmp dword [ebp - 0x3bc], 5
jl 0x4168d3
cmp dword [ebp - 0x3bc], 0x11
jg 0x4168d3
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 + 0x4cdadb]
mov dword [esi + 0x38], edx
jb 0x416bb4
jmp 0x416be3
cmp dword [ebp - 0x3bc], 0x39
je 0x4168e9
cmp dword [ebp - 0x3bc], 0x38
jne 0x416aee
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x416bb4
jmp 0x4167ad
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x416bb4
jmp 0x4167ad
mov edx, dword [esi + 0x38]
test edx, edx
mov eax, dword [ebp - 0x1d0]
jne 0x416960
cmp eax, 5
jl 0x416947
cmp eax, 0x11
jg 0x416947
or byte [esi + 0x50], 2
mov eax, dword [ebp - 0x1d0]
movsx edx, byte [eax + 0x4cdadb]
mov dword [esi + 0x38], edx
mov eax, dword [ebp - 0x1d0]
jmp 0x416960
cmp eax, 0x39
je 0x416951
cmp eax, 0x38
jne 0x416960
mov edx, dword [ebp - 0x1cc]
mov dword [esi + 0x38], edx
mov eax, dword [ebp - 0x1d0]
cmp eax, 0x19
jge case.0x416760.30
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x416bb4
jmp 0x4167ad
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x4169b2
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 + 0x4cd6da]
add edx, eax
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x416bb4
jmp 0x416be3
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x416bb4
jmp 0x4167ad
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x416bb4
jmp 0x416bd9
mov eax, dword [ebp - 0x1d0]
movsx edx, byte [eax + 0x4cdaed]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x4175b2
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x416bb4
jmp 0x4167ad
mov eax, dword [ebp - 0x1d0]
cmp eax, 5
jl 0x416aee
cmp eax, 0x11
jg 0x416aee
add ecx, 0xffffffd8
mov edx, 2
mov dword [esi + 0x38], 2
cmp ecx, 0x20
jb 0x416bb4
jmp 0x4167ad
mov eax, dword [ebp - 0x1d0]
cmp eax, 5
jl 0x416aee
cmp eax, 0x11
jg 0x416aee
add ecx, 0xffffffd8
movsx edx, byte [eax + 0x4cdadb]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x416bb4
jmp 0x4167ad
mov eax, dword [ebp - 0x1d0]
cmp eax, 0x19
mov dword [ebp - 0x3b4], eax
jge 0x4175d9
cmp dword [ebp - 0x3b4], 5
jl 0x416aa8
cmp dword [ebp - 0x3b4], 0x11
jg 0x416aa8
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, byte [eax + 0x4cdadb]
mov dword [esi + 0x38], edx
jb 0x416bb4
jmp 0x4167ad
cmp dword [ebp - 0x3b4], 0x39
je 0x416aba
cmp dword [ebp - 0x3b4], 0x38
jne 0x416aee
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x416bb4
jmp 0x4167ad
mov eax, dword [ebp - 0x1d0]
cmp eax, 0x19
mov dword [ebp - 0x1e0], eax
jl 0x416aee
cmp dword [ebp - 0x1e0], 0x34
jle 0x416b5a
add ecx, 0xffffffd8
mov eax, 0x3d
cmp ecx, 0x20
jb 0x416bb6
mov edx, dword [edi + 0x18]
test edx, edx
je 0x417626
test byte [edx + 0x44], 2
je 0x416b35
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x416b28
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.00425180
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 + 0x4cd6d8]
mov dword [ebp - 0x370], edx
mov dword [esi + 0x38], edx
movzx edx, word [eax*8 + 0x4cd6dc]
movzx eax, word [eax*8 + 0x4cd6de]
mov word [esi + 0x40], dx
mov word [esi + 0x42], ax
mov edx, dword [ebp - 0x370]
jb 0x416bb4
jmp 0x4167ad
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x416bb4
jmp 0x4167ad
add ecx, 0xffffffd8
cmp ecx, 0x20
jae 0x416bd9
xor eax, eax
mov edx, 1
shl edx, cl
test dl, 0x25
je 0x416bd1
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x38]
cmp ecx, edx
jge 0x416bce
mov ecx, edx
mov dword [esi + 0x38], ecx
test eax, eax
jne 0x416aff
movzx eax, byte [esi + 0x50]
mov edx, dword [esi + 0x38]
mov dword [ebp - 0x2c], eax
test byte [ebp - 0x2c], 2
je 0x416c8d
cmp edx, 0x40
ja 0x416c04
mov dword [ebp - 0x24], 0
lea eax, [ebp - 0x3b0]
mov dword [ebp - 0x28], eax
jmp 0x416c21
lea eax, [ebp - 0x28]
push eax
push 0
push edx
call fcn.00421c10
add esp, 0xc
test eax, eax
jne 0x4176b1
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
push dword [esi + 0x38]
push 0x20
push eax
call fcn.004abc00
push dword [ebp - 0x28]
push esi
lea eax, [ebp - 0x1d8]
push eax
call fcn.004330c0
add esp, 0x18
test eax, eax
je 0x416c5c
cmp eax, 0x3f
jne 0x417640
test byte [edi + 0x16f], 8
jne 0x416c5c
mov dword [esi + 0x10], 0x3f
mov edx, dword [esi + 0x38]
test edx, edx
je 0x416c78
mov eax, dword [ebp - 0x28]
cmp byte [eax], 0x20
jne 0x416c8d
inc eax
mov dword [ebp - 0x28], eax
mov edx, dword [esi + 0x38]
dec edx
mov dword [esi + 0x38], edx
jne 0x416c63
movsx eax, word [esi + 0x40]
test eax, eax
jne 0x416c8d
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 0x416cd4
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x34]
add eax, edx
cmp eax, 0x200
mov edx, dword [edi + 0xf8]
jge 0x416cb9
mov eax, 0x200
shr edx, 3
cmp eax, edx
jge 0x416cc2
mov eax, edx
push eax
push edi
call fcn.0042eb90
add esp, 8
test eax, eax
jne 0x4177ba
movzx eax, byte [esi + 0x50]
test al, 2
je 0x416d48
cmp dword [esi + 0x38], 0
je 0x416d25
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 0x417722
mov dword [esi + 0x38], eax
mov eax, dword [ebp - 0x28]
movsx eax, byte [eax]
cmp eax, 0x20
je 0x417722
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 0x416cfd
jmp 0x417722
and eax, 0xfffffffd
mov byte [esi + 0x50], al
mov dword [esi + 0x38], 0
cmp dword [ebp - 0x24], 0
je 0x416d43
push dword [ebp - 0x24]
call fcn.00421cd0
add esp, 4
mov edx, dword [edi + 0x3c]
jmp 0x416d6c
push dword [edi + 0x3c]
push esi
lea eax, [ebp - 0x1d8]
push eax
call fcn.004330c0
add esp, 0xc
test eax, eax
jne 0x41772b
mov edx, dword [edi + 0x3c]
add edx, dword [esi + 0x38]
mov dword [edi + 0x3c], edx
mov eax, dword [edi + 0x4c]
cmp edx, eax
ja 0x416d75
mov edx, eax
mov dword [edi + 0x4c], edx
jmp 0x415c79
mov edx, dword [edi + 0x18]
test edx, edx
je 0x416dd4
test byte [edx + 0x44], 2
je 0x416daf
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x416da2
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.00425180
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.0040f510
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 0x415cb9
cmp ebx, 1
jg 0x415cb9
or eax, 0x40
jmp 0x415cbc
cmp dword [ebp - 0x20], 0
jne 0x415cad
cmp ebx, 1
jg 0x415cad
or eax, 0x20
jmp 0x415cb9
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x416e2f
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 0x416e4c
mov ebx, dword [ebp - 0x1e8]
jmp 0x415dc6
mov eax, dword [edi + 0x18]
test eax, eax
je 0x416ed0
test byte [eax + 0x44], 2
je 0x416ea6
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 0x416e94
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.00425180
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.0040f510
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 0x416f19
cmp edx, 0x2b
jne 0x416f0b
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x16d]
and eax, 0xffffffbf
mov byte [edi + 0x16d], al
jmp 0x415e29
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x16d]
jmp 0x416f0b
push edi
mov eax, 0x2c
push eax
push eax
push 1
call fcn.0040f510
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 0x416fab
test byte [eax + 0x44], 2
je 0x416f81
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 0x416f6f
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.00425180
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.0040f510
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 0x417021
test byte [edx + 0x44], 2
je 0x416ffc
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x416fef
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.00425180
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.0040f510
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 0x417254
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x41705d
movzx eax, byte [eax + 0x1e]
test eax, eax
jne 0x417141
cmp dword [edi + 0x128], 0
jne 0x417075
cmp dword [ebp - 0x18], 0
je 0x4170a5
cmp dword [edi + 0x130], 0
je 0x4170a5
movzx eax, byte [edi + 0x171]
test eax, 0x80
mov dword [edi + 0x128], 0
je 0x417098
and eax, 0x7f
mov byte [edi + 0x171], al
jmp 0x4170a5
cmp dword [edi + 0x130], 0
jne 0x417141
movzx eax, byte [edi + 0x16d]
test al, 0x40
je 0x4170bd
cmp byte [edi + 0x156], 1
je 0x4172e1
push edi
call fcn.0042bb50
add esp, 4
test eax, eax
je 0x417125
mov edx, dword [edi + 0x18]
test edx, edx
je 0x417293
test byte [edx + 0x44], 2
je 0x417100
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4170f3
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.00425180
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 0x4171b9
push dword [esi + 4]
and eax, 0xfffffffd
mov byte [esi + 0x4f], al
call fcn.00421cd0
add esp, 4
test eax, eax
je 0x4171b9
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4172ad
test byte [edx + 0x44], 2
je 0x417194
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x417187
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.00425180
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 0x417221
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4172c7
test byte [eax + 0x44], 2
je 0x4171fc
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 0x4171ec
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.00425180
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.0041f5f0
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 0x41726f
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.0042a580
add esp, 0xc
cmp eax, 2
je 0x417259
cmp eax, 1
jne 0x415c79
jmp 0x41704a
push edi
push eax
push eax
push 1
call fcn.0040f510
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.0040f510
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.0040f510
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 0x41730b
cmp edx, 0x2b
jne 0x4172fd
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x16d]
and eax, 0xffffffbf
mov byte [edi + 0x16d], al
jmp 0x4170bd
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x16d]
jmp 0x4172fd
push edi
mov eax, 0x69
push eax
push eax
push 1
call fcn.0040f510
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 0x41704a
cmp ebx, 2
jge 0x41704a
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 0x41738a
cmp edx, 0x2b
jne 0x41737c
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x16d]
and eax, 0xffffffbf
mov byte [edi + 0x16d], al
jmp 0x4161d1
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x16d]
jmp 0x41737c
push edi
mov eax, 0x2c
push eax
push eax
push 1
call fcn.0040f510
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 0x41741c
test byte [eax + 0x44], 2
je 0x4173f2
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 0x4173e0
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.00425180
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.0040f510
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 0x417492
test byte [edx + 0x44], 2
je 0x41746d
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x417460
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.00425180
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.0040f510
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 0x416162
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 0x41704a
jmp 0x416162
mov edx, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
shl edx, 3
cmp edx, 0x11
jge 0x4174ef
mov edx, 0x11
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x416bb4
jmp 0x416be3
mov edx, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
shl edx, 3
cmp edx, 0x11
jge 0x417516
mov edx, 0x11
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x416bb4
jmp 0x4167ad
mov eax, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
lea edx, [eax + eax*2]
cmp edx, 7
jge 0x41753d
mov edx, 7
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x416bb4
jmp 0x416be3
cmp dword [ebp - 0x3bc], 0x34
jg 0x4168d3
mov edx, eax
movzx eax, byte [esi + 0x50]
or eax, 2
movsx edx, word [edx*8 + 0x4cd6d8]
mov dword [ebp - 0x2c], eax
mov byte [esi + 0x50], al
movsx eax, word [esi + 0x40]
test eax, eax
mov dword [esi + 0x38], edx
jne 0x41758f
mov eax, dword [ebp - 0x3bc]
movzx eax, word [eax*8 + 0x4cd6dc]
mov word [esi + 0x40], ax
mov eax, dword [ebp - 0x3bc]
add ecx, 0xffffffd8
cmp ecx, 0x20
movzx eax, word [eax*8 + 0x4cd6de]
mov word [esi + 0x42], ax
jb 0x416bb4
jmp 0x416be3
mov eax, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
lea edx, [eax + eax*2]
cmp edx, 7
jge 0x4175c8
mov edx, 7
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x416bb4
jmp 0x4167ad
cmp dword [ebp - 0x3b4], 0x34
jg 0x416aa8
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, word [eax*8 + 0x4cd6d8]
mov dword [ebp - 0x370], edx
mov dword [esi + 0x38], edx
movzx edx, word [eax*8 + 0x4cd6dc]
movzx eax, word [eax*8 + 0x4cd6de]
mov word [esi + 0x40], dx
mov word [esi + 0x42], ax
mov edx, dword [ebp - 0x370]
jb 0x416bb4
jmp 0x4167ad
push edi
push eax
push eax
push 1
call fcn.0040f510
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 0x417697
test byte [edx + 0x44], 2
je 0x417672
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x417665
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.00425180
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.0040f510
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 0x417708
test byte [edx + 0x44], 2
je 0x4176e3
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4176d6
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.00425180
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.0040f510
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 0x416d25
cmp eax, 0x3f
jne 0x417749
test byte [edi + 0x16f], 8
jne 0x416d63
mov dword [esi + 0x10], 0x3f
jmp 0x416d63
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4177a0
test byte [edx + 0x44], 2
je 0x41777b
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x41776e
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.00425180
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.0040f510
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 0x417820
test byte [eax + 0x44], 2
je 0x4177f6
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 0x4177e4
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.00425180
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.0040f510
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 0x417896
test byte [edx + 0x44], 2
je 0x417871
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x417864
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.00425180
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.0040f510
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 0x417907
test byte [edx + 0x44], 2
je 0x4178e2
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4178d5
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.00425180
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.0040f510
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 0x415d13
cmp ebx, 1
jg 0x415d13
or eax, 0x40
jmp 0x415d16
cmp dword [ebp - 0x20], 0
jne 0x415d03
cmp ebx, 1
jg 0x415d03
movzx eax, byte [esi + 0x4f]
or eax, 0x20
jmp 0x415d13
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 0x417982
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