Function at 0x4190d3
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 0x41a1ee
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 0x418554
lea eax, [edx - 1]
mov dword [ebp - 4], eax
mov dword [esi + 0xc], eax
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x41859a
test al, 0x20
je 0x41859a
mov ecx, dword [ebp + 0xc]
movsx ecx, byte [ecx]
cmp ecx, 2
je 0x419669
and eax, 0xffffffdf
cmp ecx, 1
je 0x41964e
and eax, 0xffffffbf
push edi
mov byte [esi + 0x4f], al
mov dword [ebp - 0x38], edx
call fcn.00430d70
mov edx, dword [ebp - 0x38]
add esp, 4
test eax, eax
jne 0x4195dd
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x418546
test al, 0x20
jne 0x41a1bb
mov edx, dword [ebp - 4]
mov dword [esi + 0xc], edx
or eax, 0x20
mov byte [esi + 0x4f], al
jmp 0x41859a
mov eax, dword [ebp + 0xc]
movsx edx, byte [eax]
cmp edx, 2
je 0x41a19c
movzx eax, byte [esi + 0x4f]
and eax, 0xffffffdf
cmp edx, 1
je 0x41a181
and eax, 0xffffffbf
push edi
mov byte [esi + 0x4f], al
call fcn.00430d70
add esp, 4
test eax, eax
jne 0x41a110
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x41859a
test al, 0x20
jne 0x419684
movsx edx, byte [esi + 0x48]
add edx, 0xfffffffe
cmp edx, 0x1a
ja case.0x4185b1.3
mov edx, dword [edx*4 + 0x4ce8e0]
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 0x418619
mov edx, ecx
sub edx, dword [ebp - 0x1bc]
cmp edx, 0x200
mov eax, dword [edi + 0xf8]
jge 0x4185f2
mov edx, 0x200
shr eax, 3
cmp edx, eax
jge 0x4185fb
mov edx, eax
push edx
push edi
call fcn.0042a1f0
add esp, 8
test eax, eax
jne 0x4196ca
mov edx, dword [esi + 0x38]
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x1b4], edx
cmp dword [ebp - 0x1b4], 0
jg 0x41969e
mov edx, dword [edi + 0x4c]
cmp eax, edx
mov dword [edi + 0x128], 0
ja 0x418639
mov eax, edx
mov dword [edi + 0x4c], eax
or byte [edi + 0x171], 0x80
jmp 0x4184d9
mov edx, dword [edi + 0x7c]
test edx, edx
je 0x418667
movzx eax, byte [edx + 0x1e]
test eax, eax
je 0x418667
mov byte [edx + 0x1e], 0
mov dword [ebp - 0x1b8], 1
jmp 0x418671
mov dword [ebp - 0x1b8], 0
movzx eax, byte [edi + 0x16d]
test al, 0x40
je 0x418689
cmp byte [edi + 0x156], 1
je 0x41974f
push edi
call fcn.004271a0
add esp, 4
test eax, eax
jne 0x41982a
add dword [edi + 0x98], 1
push 0
push edi
adc dword [edi + 0x9c], 0
and byte [edi + 0x16f], 0xfb
call fcn.00428690
add esp, 8
test eax, eax
jne 0x4197a5
movsx eax, byte [edi + 0x154]
mov dword [ebp - 0x1c4], eax
lea eax, [eax - 1]
cmp eax, 7
ja case.default.0x4186e2
mov eax, dword [eax*4 + 0x4ce960]
jmp eax
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x4186f0
mov dword [edi + 0x3c], ecx
jmp 0x4186f6
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 0x418826
mov eax, dword [edi + 0x18]
test eax, eax
je 0x419786
test byte [eax + 0x44], 2
je 0x41874f
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 0x41873d
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.004207d0
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 0x418785
add ecx, 4
jmp 0x41878b
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 0x418826
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x4187b3
mov dword [edi + 0x3c], ecx
jmp 0x4187b9
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 0x4187ef
test byte [edi + 0x16a], 0x40
je 0x4187ef
test byte [edi + 0x16b], 8
je 0x4187ef
cmp dword [ebp - 0x1c4], 1
je 0x4187f4
mov dword [edi + 0x44], eax
jmp 0x418826
mov eax, dword [ebp - 0x1ec]
lea eax, [ecx + eax - 2]
mov dword [edi + 0x44], eax
jmp 0x418826
push 0x464
push str.for_wseq_fmt.c
push 2
push 8
call fcn.0040e820
add esp, 0x10
movzx edx, byte [edi + 0x168]
mov ecx, dword [edi + 0x3c]
mov eax, dword [edi + 0x44]
test dl, 4
je 0x418846
test byte [edi + 0x16a], 0x40
je 0x418846
test byte [edi + 0x16b], 8
je 0x418846
cmp byte [edi + 0x154], 1
je 0x418893
movsx edx, byte [edi + 0x156]
cmp edx, 2
jne 0x41886e
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x418893
cmp edx, 6
je 0x418893
cmp edx, 8
je 0x418893
dec eax
mov dword [edi + 0x44], eax
jmp 0x418893
cmp edx, 1
jne 0x418893
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x41888d
cmp edx, 6
je 0x41888d
cmp edx, 8
je 0x41888d
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.004ae150
add esp, 0xc
mov dword [edi + 0x128], 0
cmp dword [ebp - 0x1b8], 0
je 0x4184d9
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
jmp 0x4184d9
cmp ebx, 2
jge 0x4184d9
jmp 0x41989b
test byte [edi + 0x168], 4
je 0x4188f3
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
mov edx, dword [edi + 0x7c]
mov dword [edx + 0xc], edi
jmp 0x4184d9
or byte [edi + 0x16d], 0x40
jmp 0x4184d9
mov edx, dword [ebp + 0xc]
movsx edx, byte [edx]
cmp edx, 1
je 0x419d2b
cmp edx, 2
je 0x419d0c
test byte [esi + 0x4e], 0x20
jne 0x4189c2
test byte [edi + 0x168], 2
je 0x418958
test eax, 0x80
je 0x418958
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.00425ee0
add esp, 0x14
test eax, eax
jne 0x419b97
mov eax, dword [edi + 0x18]
test eax, eax
je 0x419b78
test byte [eax + 0x44], 2
je 0x418998
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 0x418986
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.004207d0
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 0x4189e1
movzx eax, byte [edx + 0x1e]
test eax, eax
je 0x4189e1
mov byte [edx + 0x1e], 0
mov dword [ebp - 0x1c8], 1
jmp 0x4189eb
mov dword [ebp - 0x1c8], 0
cmp dword [edi + 0x128], 0
je 0x418a19
movzx eax, byte [edi + 0x171]
test eax, 0x80
mov dword [edi + 0x128], 0
jne 0x418a19
cmp dword [edi + 0x130], 0
jne 0x418c64
movzx eax, byte [edi + 0x16d]
test al, 0x40
je 0x418a31
cmp byte [edi + 0x156], 1
je 0x419bc0
push edi
call fcn.004271a0
add esp, 4
test eax, eax
jne 0x419c9b
add dword [edi + 0x98], 1
push 0
push edi
adc dword [edi + 0x9c], 0
and byte [edi + 0x16f], 0xfb
call fcn.00428690
add esp, 8
test eax, eax
jne 0x419c16
movsx eax, byte [edi + 0x154]
mov dword [ebp - 0x1e4], eax
lea eax, [eax - 1]
cmp eax, 7
ja case.default.0x418a8a
mov eax, dword [eax*4 + 0x4ce980]
jmp eax
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x418a98
mov dword [edi + 0x3c], ecx
jmp 0x418a9e
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 0x418bce
mov eax, dword [edi + 0x18]
test eax, eax
je 0x419bf7
test byte [eax + 0x44], 2
je 0x418af7
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 0x418ae5
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.004207d0
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 0x418b2d
add ecx, 4
jmp 0x418b33
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 0x418bce
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x418b5b
mov dword [edi + 0x3c], ecx
jmp 0x418b61
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 0x418b97
test byte [edi + 0x16a], 0x40
je 0x418b97
test byte [edi + 0x16b], 8
je 0x418b97
cmp dword [ebp - 0x1e4], 1
je 0x418b9c
mov dword [edi + 0x44], eax
jmp 0x418bce
mov eax, dword [ebp - 0x3b8]
lea eax, [ecx + eax - 2]
mov dword [edi + 0x44], eax
jmp 0x418bce
push 0x534
push str.for_wseq_fmt.c
push 2
push 8
call fcn.0040e820
add esp, 0x10
movzx edx, byte [edi + 0x168]
mov ecx, dword [edi + 0x3c]
mov eax, dword [edi + 0x44]
test dl, 4
je 0x418bee
test byte [edi + 0x16a], 0x40
je 0x418bee
test byte [edi + 0x16b], 8
je 0x418bee
cmp byte [edi + 0x154], 1
je 0x418c3b
movsx edx, byte [edi + 0x156]
cmp edx, 2
jne 0x418c16
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x418c3b
cmp edx, 6
je 0x418c3b
cmp edx, 8
je 0x418c3b
dec eax
mov dword [edi + 0x44], eax
jmp 0x418c3b
cmp edx, 1
jne 0x418c3b
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x418c35
cmp edx, 6
je 0x418c35
cmp edx, 8
je 0x418c35
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.004ae150
add esp, 0xc
mov dword [edi + 0x130], 1
and byte [edi + 0x171], 0x7f
cmp dword [ebp - 0x1c8], 0
je 0x418c74
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
mov eax, dword [edi + 0x3c]
mov dword [edi + 0x4c], eax
jmp 0x4184d9
cmp ebx, 1
jle 0x418d5b
mov eax, dword [ebp - 0x36c]
cmp eax, 7
je 0x418c9c
cmp eax, 8
jne 0x418d29
cmp dword [ebp - 0x20], 0
je 0x418cbb
mov eax, dword [ebp - 0x1cc]
dec ebx
add dword [ebp - 0x1d8], eax
mov dword [ebp - 0x20], 0
jmp 0x418f4f
cmp dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x368]
je 0x418ccf
mov eax, 1
xor ecx, ecx
mov dword [ebp - 0x20], eax
test edx, edx
jle 0x418d03
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 0x418ce0
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.0042a410
add esp, 0xc
jmp 0x418d44
mov edx, dword [ebp - 0x20]
test edx, edx
mov eax, dword [ebp - 0x1cc]
je 0x418d3b
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 0x418f4f
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.00425c70
add esp, 0x10
test eax, eax
jne 0x41a09f
mov ecx, dword [ebp - 0x1d0]
cmp ecx, 2
je 0x41a1cd
cmp ecx, 1
je 0x4198aa
mov eax, dword [ebp - 0x36c]
cmp eax, 7
jl 0x418ebb
cmp eax, 8
jg 0x418ebb
mov ebx, dword [ebp - 0x1cc]
test ebx, ebx
je 0x418dc8
mov eax, dword [ebp - 0x1d4]
cdq
idiv ebx
mov ebx, eax
jmp 0x418ddb
test byte [edi + 0x168], 2
je 0x418ead
mov ebx, dword [ebp - 0x1d4]
test ebx, ebx
je 0x418eaf
cmp ecx, 0x34
je 0x418df2
cmp ecx, 0x1c
jl 0x418dff
cmp ecx, 0x2c
jg 0x418dff
mov eax, 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], eax
jmp 0x418e06
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x368]
test eax, eax
jle 0x418e52
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 0x418e18
mov edi, dword [ebp - 0x1b0]
test eax, eax
mov ecx, 0
jle 0x418e84
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 0x418e61
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.0042a410
add esp, 0xc
jmp 0x418f3e
xor ebx, ebx
mov dword [ebp - 0x18], 1
jmp 0x418f55
cmp eax, 6
je 0x418ec5
cmp eax, 5
jne 0x418f1c
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 0x418efa
mov eax, ebx
cdq
mov ebx, dword [ebp - 0x1dc]
idiv ebx
mov ebx, eax
test ecx, ecx
jne 0x418f05
jmp 0x418f4f
test ecx, ecx
jne 0x418f03
mov ebx, 0
je 0x418f4f
test ebx, ebx
jne 0x418f3e
mov dword [edi + 0x128], 1
mov dword [ebp - 0x18], 1
jmp 0x418f55
cmp ecx, 0x34
je 0x418f2b
cmp ecx, 0x1c
jl 0x418f39
cmp ecx, 0x2c
jg 0x418f39
mov dword [ebp - 0x20], 1
mov ebx, 2
jmp 0x418f3e
mov ebx, 1
mov dword [edi + 0x128], 0
or byte [edi + 0x171], 0x80
cmp dword [ebp - 0x18], 0
je 0x418f71
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x418f68
mov dword [esi + 0xc], 2
jmp 0x4184d9
inc eax
mov dword [esi + 0xc], eax
jmp 0x4184d9
mov eax, dword [esi]
and byte [esi + 0x4f], 0xf7
movsx ecx, byte [esi + 0x48]
movzx edx, byte [eax + 0x16e]
test edx, 0x80
je 0x418fad
mov eax, dword [ecx*4 + 0x4d0b00]
test eax, eax
je 0x418fad
mov edx, dword [ebp - 0x1d0]
movsx eax, byte [eax + edx]
test eax, eax
je 0x418fad
mov dword [ebp - 0x1d0], eax
movsx ecx, byte [esi + 0x48]
lea eax, [ecx - 0x13]
cmp eax, 0x20
ja case.default.0x418fc0
mov eax, dword [eax*4 + 0x4ce9a0]
jmp eax
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x419001
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 + 0x4d09a0]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x419d39
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x419414
jmp 0x419443
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x419414
movzx eax, byte [esi + 0x50]
mov dword [ebp - 0x2c], eax
jmp 0x419443
mov eax, dword [ebp - 0x1d0]
movsx edx, word [eax*2 + 0x4d09a0]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x419d60
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x419414
jmp 0x41900d
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x41907f
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 + 0x4d0d6d]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x419d87
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x419414
jmp 0x419443
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x419414
jmp 0x41900d
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x4190c2
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 + 0x4d0d5b]
mov dword [esi + 0x38], edx
jb 0x419414
jmp 0x419443
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x419414
jmp 0x41900d
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x419163
mov eax, dword [ebp - 0x1d0]
cmp eax, 0x19
mov dword [ebp - 0x3bc], eax
jge 0x419dae
cmp dword [ebp - 0x3bc], 5
jl 0x419133
cmp dword [ebp - 0x3bc], 0x11
jg 0x419133
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 + 0x4d0d5b]
mov dword [esi + 0x38], edx
jb 0x419414
jmp 0x419443
cmp dword [ebp - 0x3bc], 0x39
je 0x419149
cmp dword [ebp - 0x3bc], 0x38
jne 0x41934e
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x419414
jmp 0x41900d
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x419414
jmp 0x41900d
mov edx, dword [esi + 0x38]
test edx, edx
mov eax, dword [ebp - 0x1d0]
jne 0x4191c0
cmp eax, 5
jl 0x4191a7
cmp eax, 0x11
jg 0x4191a7
or byte [esi + 0x50], 2
mov eax, dword [ebp - 0x1d0]
movsx edx, byte [eax + 0x4d0d5b]
mov dword [esi + 0x38], edx
mov eax, dword [ebp - 0x1d0]
jmp 0x4191c0
cmp eax, 0x39
je 0x4191b1
cmp eax, 0x38
jne 0x4191c0
mov edx, dword [ebp - 0x1cc]
mov dword [esi + 0x38], edx
mov eax, dword [ebp - 0x1d0]
cmp eax, 0x19
jge case.0x418fc0.30
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x419414
jmp 0x41900d
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x419212
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 + 0x4d095a]
add edx, eax
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x419414
jmp 0x419443
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x419414
jmp 0x41900d
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x419414
jmp 0x419439
mov eax, dword [ebp - 0x1d0]
movsx edx, byte [eax + 0x4d0d6d]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x419e12
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x419414
jmp 0x41900d
mov eax, dword [ebp - 0x1d0]
cmp eax, 5
jl 0x41934e
cmp eax, 0x11
jg 0x41934e
add ecx, 0xffffffd8
mov edx, 2
mov dword [esi + 0x38], 2
cmp ecx, 0x20
jb 0x419414
jmp 0x41900d
mov eax, dword [ebp - 0x1d0]
cmp eax, 5
jl 0x41934e
cmp eax, 0x11
jg 0x41934e
add ecx, 0xffffffd8
movsx edx, byte [eax + 0x4d0d5b]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x419414
jmp 0x41900d
mov eax, dword [ebp - 0x1d0]
cmp eax, 0x19
mov dword [ebp - 0x3b4], eax
jge 0x419e39
cmp dword [ebp - 0x3b4], 5
jl 0x419308
cmp dword [ebp - 0x3b4], 0x11
jg 0x419308
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, byte [eax + 0x4d0d5b]
mov dword [esi + 0x38], edx
jb 0x419414
jmp 0x41900d
cmp dword [ebp - 0x3b4], 0x39
je 0x41931a
cmp dword [ebp - 0x3b4], 0x38
jne 0x41934e
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x419414
jmp 0x41900d
mov eax, dword [ebp - 0x1d0]
cmp eax, 0x19
mov dword [ebp - 0x1e0], eax
jl 0x41934e
cmp dword [ebp - 0x1e0], 0x34
jle 0x4193ba
add ecx, 0xffffffd8
mov eax, 0x3d
cmp ecx, 0x20
jb 0x419416
mov edx, dword [edi + 0x18]
test edx, edx
je 0x419e86
test byte [edx + 0x44], 2
je 0x419395
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x419388
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.004207d0
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 + 0x4d0958]
mov dword [ebp - 0x370], edx
mov dword [esi + 0x38], edx
movzx edx, word [eax*8 + 0x4d095c]
movzx eax, word [eax*8 + 0x4d095e]
mov word [esi + 0x40], dx
mov word [esi + 0x42], ax
mov edx, dword [ebp - 0x370]
jb 0x419414
jmp 0x41900d
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x419414
jmp 0x41900d
add ecx, 0xffffffd8
cmp ecx, 0x20
jae 0x419439
xor eax, eax
mov edx, 1
shl edx, cl
test dl, 0x25
je 0x419431
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x38]
cmp ecx, edx
jge 0x41942e
mov ecx, edx
mov dword [esi + 0x38], ecx
test eax, eax
jne 0x41935f
movzx eax, byte [esi + 0x50]
mov edx, dword [esi + 0x38]
mov dword [ebp - 0x2c], eax
test byte [ebp - 0x2c], 2
je 0x4194ed
cmp edx, 0x40
ja 0x419464
mov dword [ebp - 0x24], 0
lea eax, [ebp - 0x3b0]
mov dword [ebp - 0x28], eax
jmp 0x419481
lea eax, [ebp - 0x28]
push eax
push 0
push edx
call fcn.004085a0
add esp, 0xc
test eax, eax
jne 0x419f11
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
push dword [esi + 0x38]
push 0x20
push eax
call fcn.004ae150
push dword [ebp - 0x28]
push esi
lea eax, [ebp - 0x1d8]
push eax
call fcn.0042b500
add esp, 0x18
test eax, eax
je 0x4194bc
cmp eax, 0x3f
jne 0x419ea0
test byte [edi + 0x16f], 8
jne 0x4194bc
mov dword [esi + 0x10], 0x3f
mov edx, dword [esi + 0x38]
test edx, edx
je 0x4194d8
mov eax, dword [ebp - 0x28]
cmp byte [eax], 0x20
jne 0x4194ed
inc eax
mov dword [ebp - 0x28], eax
mov edx, dword [esi + 0x38]
dec edx
mov dword [esi + 0x38], edx
jne 0x4194c3
movsx eax, word [esi + 0x40]
test eax, eax
jne 0x4194ed
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 0x419534
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x34]
add eax, edx
cmp eax, 0x200
mov edx, dword [edi + 0xf8]
jge 0x419519
mov eax, 0x200
shr edx, 3
cmp eax, edx
jge 0x419522
mov eax, edx
push eax
push edi
call fcn.0042a1f0
add esp, 8
test eax, eax
jne 0x41a01a
movzx eax, byte [esi + 0x50]
test al, 2
je 0x4195a8
cmp dword [esi + 0x38], 0
je 0x419585
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 0x419f82
mov dword [esi + 0x38], eax
mov eax, dword [ebp - 0x28]
movsx eax, byte [eax]
cmp eax, 0x20
je 0x419f82
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 0x41955d
jmp 0x419f82
and eax, 0xfffffffd
mov byte [esi + 0x50], al
mov dword [esi + 0x38], 0
cmp dword [ebp - 0x24], 0
je 0x4195a3
push dword [ebp - 0x24]
call fcn.00408660
add esp, 4
mov edx, dword [edi + 0x3c]
jmp 0x4195cc
push dword [edi + 0x3c]
push esi
lea eax, [ebp - 0x1d8]
push eax
call fcn.0042b500
add esp, 0xc
test eax, eax
jne 0x419f8b
mov edx, dword [edi + 0x3c]
add edx, dword [esi + 0x38]
mov dword [edi + 0x3c], edx
mov eax, dword [edi + 0x4c]
cmp edx, eax
ja 0x4195d5
mov edx, eax
mov dword [edi + 0x4c], edx
jmp 0x4184d9
mov edx, dword [edi + 0x18]
test edx, edx
je 0x419634
test byte [edx + 0x44], 2
je 0x41960f
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x419602
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.004207d0
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.0040c750
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 0x418519
cmp ebx, 1
jg 0x418519
or eax, 0x40
jmp 0x41851c
cmp dword [ebp - 0x20], 0
jne 0x41850d
cmp ebx, 1
jg 0x41850d
or eax, 0x20
jmp 0x418519
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x41968f
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 0x4196ac
mov ebx, dword [ebp - 0x1e8]
jmp 0x418626
mov eax, dword [edi + 0x18]
test eax, eax
je 0x419730
test byte [eax + 0x44], 2
je 0x419706
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 0x4196f4
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.004207d0
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.0040c750
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 0x419779
cmp edx, 0x2b
jne 0x41976b
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x16d]
and eax, 0xffffffbf
mov byte [edi + 0x16d], al
jmp 0x418689
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x16d]
jmp 0x41976b
push edi
mov eax, 0x2c
push eax
push eax
push 1
call fcn.0040c750
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 0x41980b
test byte [eax + 0x44], 2
je 0x4197e1
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 0x4197cf
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.004207d0
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.0040c750
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 0x419881
test byte [edx + 0x44], 2
je 0x41985c
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x41984f
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.004207d0
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.0040c750
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 0x419ab4
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x4198bd
movzx eax, byte [eax + 0x1e]
test eax, eax
jne 0x4199a1
cmp dword [edi + 0x128], 0
jne 0x4198d5
cmp dword [ebp - 0x18], 0
je 0x419905
cmp dword [edi + 0x130], 0
je 0x419905
movzx eax, byte [edi + 0x171]
test eax, 0x80
mov dword [edi + 0x128], 0
je 0x4198f8
and eax, 0x7f
mov byte [edi + 0x171], al
jmp 0x419905
cmp dword [edi + 0x130], 0
jne 0x4199a1
movzx eax, byte [edi + 0x16d]
test al, 0x40
je 0x41991d
cmp byte [edi + 0x156], 1
je 0x419b41
push edi
call fcn.004271a0
add esp, 4
test eax, eax
je 0x419985
mov edx, dword [edi + 0x18]
test edx, edx
je 0x419af3
test byte [edx + 0x44], 2
je 0x419960
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x419953
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.004207d0
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 0x419a19
push dword [esi + 4]
and eax, 0xfffffffd
mov byte [esi + 0x4f], al
call fcn.00408660
add esp, 4
test eax, eax
je 0x419a19
mov edx, dword [edi + 0x18]
test edx, edx
je 0x419b0d
test byte [edx + 0x44], 2
je 0x4199f4
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4199e7
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.004207d0
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 0x419a81
mov eax, dword [edi + 0x18]
test eax, eax
je 0x419b27
test byte [eax + 0x44], 2
je 0x419a5c
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 0x419a4c
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.004207d0
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.0041af30
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 0x419acf
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.00425bd0
add esp, 0xc
cmp eax, 2
je 0x419ab9
cmp eax, 1
jne 0x4184d9
jmp 0x4198aa
push edi
push eax
push eax
push 1
call fcn.0040c750
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.0040c750
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.0040c750
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 0x419b6b
cmp edx, 0x2b
jne 0x419b5d
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x16d]
and eax, 0xffffffbf
mov byte [edi + 0x16d], al
jmp 0x41991d
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x16d]
jmp 0x419b5d
push edi
mov eax, 0x69
push eax
push eax
push 1
call fcn.0040c750
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 0x4198aa
cmp ebx, 2
jge 0x4198aa
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 0x419bea
cmp edx, 0x2b
jne 0x419bdc
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x16d]
and eax, 0xffffffbf
mov byte [edi + 0x16d], al
jmp 0x418a31
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x16d]
jmp 0x419bdc
push edi
mov eax, 0x2c
push eax
push eax
push 1
call fcn.0040c750
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 0x419c7c
test byte [eax + 0x44], 2
je 0x419c52
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 0x419c40
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.004207d0
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.0040c750
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 0x419cf2
test byte [edx + 0x44], 2
je 0x419ccd
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x419cc0
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.004207d0
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.0040c750
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 0x4189c2
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 0x4198aa
jmp 0x4189c2
mov edx, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
shl edx, 3
cmp edx, 0x11
jge 0x419d4f
mov edx, 0x11
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x419414
jmp 0x419443
mov edx, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
shl edx, 3
cmp edx, 0x11
jge 0x419d76
mov edx, 0x11
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x419414
jmp 0x41900d
mov eax, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
lea edx, [eax + eax*2]
cmp edx, 7
jge 0x419d9d
mov edx, 7
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x419414
jmp 0x419443
cmp dword [ebp - 0x3bc], 0x34
jg 0x419133
mov edx, eax
movzx eax, byte [esi + 0x50]
or eax, 2
movsx edx, word [edx*8 + 0x4d0958]
mov dword [ebp - 0x2c], eax
mov byte [esi + 0x50], al
movsx eax, word [esi + 0x40]
test eax, eax
mov dword [esi + 0x38], edx
jne 0x419def
mov eax, dword [ebp - 0x3bc]
movzx eax, word [eax*8 + 0x4d095c]
mov word [esi + 0x40], ax
mov eax, dword [ebp - 0x3bc]
add ecx, 0xffffffd8
cmp ecx, 0x20
movzx eax, word [eax*8 + 0x4d095e]
mov word [esi + 0x42], ax
jb 0x419414
jmp 0x419443
mov eax, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
lea edx, [eax + eax*2]
cmp edx, 7
jge 0x419e28
mov edx, 7
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x419414
jmp 0x41900d
cmp dword [ebp - 0x3b4], 0x34
jg 0x419308
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, word [eax*8 + 0x4d0958]
mov dword [ebp - 0x370], edx
mov dword [esi + 0x38], edx
movzx edx, word [eax*8 + 0x4d095c]
movzx eax, word [eax*8 + 0x4d095e]
mov word [esi + 0x40], dx
mov word [esi + 0x42], ax
mov edx, dword [ebp - 0x370]
jb 0x419414
jmp 0x41900d
push edi
push eax
push eax
push 1
call fcn.0040c750
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 0x419ef7
test byte [edx + 0x44], 2
je 0x419ed2
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x419ec5
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.004207d0
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.0040c750
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 0x419f68
test byte [edx + 0x44], 2
je 0x419f43
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x419f36
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.004207d0
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.0040c750
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 0x419585
cmp eax, 0x3f
jne 0x419fa9
test byte [edi + 0x16f], 8
jne 0x4195c3
mov dword [esi + 0x10], 0x3f
jmp 0x4195c3
mov edx, dword [edi + 0x18]
test edx, edx
je 0x41a000
test byte [edx + 0x44], 2
je 0x419fdb
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x419fce
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.004207d0
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.0040c750
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 0x41a080
test byte [eax + 0x44], 2
je 0x41a056
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 0x41a044
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.004207d0
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.0040c750
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 0x41a0f6
test byte [edx + 0x44], 2
je 0x41a0d1
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x41a0c4
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.004207d0
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.0040c750
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 0x41a167
test byte [edx + 0x44], 2
je 0x41a142
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x41a135
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.004207d0
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.0040c750
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 0x418573
cmp ebx, 1
jg 0x418573
or eax, 0x40
jmp 0x418576
cmp dword [ebp - 0x20], 0
jne 0x418563
cmp ebx, 1
jg 0x418563
movzx eax, byte [esi + 0x4f]
or eax, 0x20
jmp 0x418573
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 0x41a1e2
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