Function at 0x41e910
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3d4
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 0x420998
xor eax, eax
mov ebx, 1
mov esi, dword [edi + 0x58]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov edx, dword [esi + 0xc]
cmp edx, 1
jle 0x41e9f7
mov eax, dword [esi + 0x38]
lea ecx, [edx - 1]
mov dword [ebp - 4], ecx
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0x3c]
and ecx, 1
mov dword [esi + 0x88], eax
add ecx, ecx
movzx eax, byte [esi + 0xa0]
and eax, 0xfffffffd
or eax, ecx
mov byte [esi + 0xa0], al
movzx eax, byte [esi + 0x9f]
test al, 0x10
je 0x41ea46
test al, 0x20
je 0x41ea46
mov ecx, dword [ebp + 0xc]
movsx ecx, byte [ecx]
cmp ecx, 2
je 0x41fd8f
and eax, 0xffffffdf
cmp ecx, 1
je 0x41fd6e
and eax, 0xffffffbf
mov byte [esi + 0x9f], al
push edi
mov dword [ebp - 0x38], edx
call fcn.004327a0
mov edx, dword [ebp - 0x38]
add esp, 4
test eax, eax
jne 0x41fcfd
movzx eax, byte [esi + 0x9f]
test al, 0x10
je 0x41e9e6
test al, 0x20
jne 0x420965
mov edx, dword [ebp - 4]
mov dword [esi + 0xc], edx
or eax, 0x20
mov byte [esi + 0x9f], al
jmp 0x41ea46
mov eax, dword [ebp + 0xc]
movsx edx, byte [eax]
cmp edx, 2
je 0x420943
movzx eax, byte [esi + 0x9f]
and eax, 0xffffffdf
cmp edx, 1
je 0x420922
and eax, 0xffffffbf
mov byte [esi + 0x9f], al
push edi
call fcn.004327a0
add esp, 4
test eax, eax
jne 0x4208b1
movzx eax, byte [esi + 0x9f]
test al, 0x10
je 0x41ea46
test al, 0x20
jne 0x41fdaa
movsx edx, byte [esi + 0x98]
add edx, 0xfffffffe
cmp edx, 0x1a
ja case.0x41ea59.3
jmp dword [edx*4 + 0x4d1ec0]
mov eax, dword [esi + 0x8c]
mov dword [ebp - 0x50], eax
mov eax, dword [edi + 0x3c]
mov ecx, dword [esi + 0x88]
mov dword [ebp - 0x44], ecx
mov edx, dword [edi + 0x44]
mov dword [ebp - 0x4c], edx
add ecx, eax
cmp edx, ecx
jb 0x41fdf0
cmp dword [ebp - 0x44], 0
jg 0x41fdc4
mov edx, dword [edi + 0x4c]
cmp eax, edx
mov dword [edi + 0x128], 0
ja 0x41eaa2
mov eax, edx
mov dword [edi + 0x4c], eax
or byte [edi + 0x179], 0x80
jmp 0x41e949
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x41eacb
cmp byte [eax + 0x1e], 0
je 0x41eacb
mov byte [eax + 0x1e], 0
mov dword [ebp - 0x48], 1
jmp 0x41ead2
mov dword [ebp - 0x48], 0
movzx eax, byte [edi + 0x175]
test al, 0x40
je 0x41eaea
cmp byte [edi + 0x15e], 1
je 0x41feb5
push edi
call fcn.00418c40
add esp, 4
test eax, eax
jne 0x41ff90
add dword [edi + 0x98], 1
push 0
push edi
adc dword [edi + 0x9c], 0
and byte [edi + 0x177], 0xfb
call fcn.00419fe0
add esp, 8
test eax, eax
jne 0x41ff0b
movsx eax, byte [edi + 0x15c]
mov dword [ebp - 0x54], eax
lea eax, [eax - 1]
cmp eax, 7
ja case.default.0x41eb39
jmp dword [eax*4 + 0x4d1f40]
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x41eb4c
mov dword [edi + 0x3c], ecx
jmp 0x41eb52
mov ecx, dword [edi + 0x38]
mov dword [edi + 0x3c], ecx
mov eax, dword [edi + 0xf8]
movzx edx, byte [edi + 0x170]
lea eax, [ecx + eax - 1]
mov dword [edi + 0x44], eax
jmp 0x41ec7c
mov eax, dword [edi + 0x18]
test eax, eax
je 0x41feec
test byte [eax + 0x44], 2
je 0x41ebab
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 0x41eb99
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 + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423970
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 0x41ebe1
add ecx, 4
jmp 0x41ebe7
mov ecx, dword [edi + 0x38]
add ecx, 4
mov eax, dword [edi + 0xf8]
mov dword [edi + 0x3c], ecx
movzx edx, byte [edi + 0x170]
lea eax, [ecx + eax - 8]
mov dword [edi + 0x44], eax
jmp 0x41ec7c
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x41ec0c
mov dword [edi + 0x3c], ecx
jmp 0x41ec12
mov ecx, dword [edi + 0x38]
mov dword [edi + 0x3c], ecx
mov eax, dword [edi + 0xf8]
movzx edx, byte [edi + 0x170]
test dl, 4
mov dword [ebp - 0x200], eax
lea eax, [ecx + eax]
je 0x41ec45
test byte [edi + 0x172], 0x40
je 0x41ec45
test byte [edi + 0x173], 8
je 0x41ec45
cmp dword [ebp - 0x54], 1
je 0x41ec4a
mov dword [edi + 0x44], eax
jmp 0x41ec7c
mov eax, dword [ebp - 0x200]
lea eax, [ecx + eax - 2]
mov dword [edi + 0x44], eax
jmp 0x41ec7c
push 0x472
push str.for_wseq_fmt.c
push 2
push 8
call fcn.0040ab30
add esp, 0x10
movzx edx, byte [edi + 0x170]
mov ecx, dword [edi + 0x3c]
mov eax, dword [edi + 0x44]
test dl, 4
je 0x41ec9c
test byte [edi + 0x172], 0x40
je 0x41ec9c
test byte [edi + 0x173], 8
je 0x41ec9c
cmp byte [edi + 0x15c], 1
je 0x41ece9
movsx edx, byte [edi + 0x15e]
cmp edx, 2
jne 0x41ecc4
movsx edx, byte [edi + 0x15c]
cmp edx, 7
je 0x41ece9
cmp edx, 6
je 0x41ece9
cmp edx, 8
je 0x41ece9
dec eax
mov dword [edi + 0x44], eax
jmp 0x41ece9
cmp edx, 1
jne 0x41ece9
movsx edx, byte [edi + 0x15c]
cmp edx, 7
je 0x41ece3
cmp edx, 6
je 0x41ece3
cmp edx, 8
je 0x41ece3
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.004b4870
add esp, 0xc
mov dword [edi + 0x128], 0
cmp dword [ebp - 0x48], 0
je 0x41e949
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
jmp 0x41e949
cmp ebx, 2
jge 0x41e949
jmp 0x420001
test byte [edi + 0x170], 4
je 0x41ed46
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
mov edx, dword [edi + 0x7c]
mov dword [edx + 0xc], edi
jmp 0x41e949
or byte [edi + 0x175], 0x40
jmp 0x41e949
mov edx, dword [ebp + 0xc]
movsx edx, byte [edx]
cmp edx, 1
je 0x4204e1
cmp edx, 2
je 0x4204c2
test byte [esi + 0x9e], 0x20
jne 0x41ee18
test byte [edi + 0x170], 2
je 0x41edae
test eax, 0x80
je 0x41edae
push ebx
lea eax, [ebp - 0x380]
push eax
lea edx, [ebp - 0x1d8]
push edx
lea ecx, [ebp + 0x10]
push ecx
lea eax, [ebp + 0xc]
push eax
call fcn.00428d20
add esp, 0x14
test eax, eax
jne 0x420325
mov eax, dword [edi + 0x18]
test eax, eax
je 0x420306
test byte [eax + 0x44], 2
je 0x41edee
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 0x41eddc
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 + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423970
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 eax, dword [edi + 0x7c]
test eax, eax
je 0x41ee30
cmp byte [eax + 0x1e], 0
je 0x41ee30
mov byte [eax + 0x1e], 0
mov edx, 1
jmp 0x41ee32
xor edx, edx
cmp dword [edi + 0x128], 0
je 0x41ee60
movzx eax, byte [edi + 0x179]
test eax, 0x80
mov dword [edi + 0x128], 0
jne 0x41ee60
cmp dword [edi + 0x130], 0
jne 0x41f13c
movzx eax, byte [edi + 0x175]
test al, 0x40
mov dword [ebp - 0x1e4], eax
je 0x41ee7e
cmp byte [edi + 0x15e], 1
je 0x42034e
push edi
mov dword [ebp - 0x1e0], edx
call fcn.00418c40
mov edx, dword [ebp - 0x1e0]
add esp, 4
test eax, eax
jne 0x420451
add dword [edi + 0x98], 1
push 0
push edi
adc dword [edi + 0x9c], 0
and byte [edi + 0x177], 0xfb
mov dword [ebp - 0x1e0], edx
call fcn.00419fe0
mov edx, dword [ebp - 0x1e0]
add esp, 8
test eax, eax
jne 0x4203cc
movsx eax, byte [edi + 0x15c]
mov dword [ebp - 0x1e8], eax
lea eax, [eax - 1]
cmp eax, 7
ja case.default.0x41eee8
jmp dword [eax*4 + 0x4d1f60]
mov eax, dword [edi + 0x40]
test eax, eax
je 0x41eefb
mov dword [edi + 0x3c], eax
jmp 0x41ef01
mov eax, dword [edi + 0x38]
mov dword [edi + 0x3c], eax
mov ecx, dword [edi + 0xf8]
lea ecx, [eax + ecx - 1]
mov dword [ebp - 0x1f4], ecx
mov dword [edi + 0x44], ecx
movzx ecx, byte [edi + 0x170]
mov dword [ebp - 0x1f0], ecx
jmp 0x41f078
mov eax, dword [edi + 0x18]
test eax, eax
je 0x420397
test byte [eax + 0x44], 2
je 0x41ef66
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 0x41ef54
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 + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423970
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 eax, dword [edi + 0x40]
test eax, eax
je 0x41ef9c
add eax, 4
jmp 0x41efa2
mov eax, dword [edi + 0x38]
add eax, 4
mov ecx, dword [edi + 0xf8]
mov dword [edi + 0x3c], eax
lea ecx, [eax + ecx - 8]
mov dword [ebp - 0x1f4], ecx
mov dword [edi + 0x44], ecx
movzx ecx, byte [edi + 0x170]
mov dword [ebp - 0x1f0], ecx
jmp 0x41f078
mov eax, dword [edi + 0x40]
test eax, eax
je 0x41efd6
mov dword [edi + 0x3c], eax
jmp 0x41efdc
mov eax, dword [edi + 0x38]
mov dword [edi + 0x3c], eax
mov ecx, dword [edi + 0xf8]
mov dword [ebp - 0x3d0], ecx
add ecx, eax
mov dword [ebp - 0x1f4], ecx
movzx ecx, byte [edi + 0x170]
test cl, 4
mov dword [ebp - 0x1f0], ecx
je 0x41f01d
test byte [edi + 0x172], 0x40
je 0x41f01d
test byte [edi + 0x173], 8
je 0x41f01d
cmp dword [ebp - 0x1e8], 1
je 0x41f028
mov ecx, dword [ebp - 0x1f4]
mov dword [edi + 0x44], ecx
jmp 0x41f078
mov ecx, dword [ebp - 0x3d0]
lea ecx, [eax + ecx - 2]
mov dword [ebp - 0x1f4], ecx
mov dword [edi + 0x44], ecx
jmp 0x41f078
push 0x544
push str.for_wseq_fmt.c
push 2
push 8
mov dword [ebp - 0x1e0], edx
call fcn.0040ab30
mov edx, dword [ebp - 0x1e0]
add esp, 0x10
movzx eax, byte [edi + 0x170]
mov ecx, dword [edi + 0x44]
mov dword [ebp - 0x1f0], eax
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x1f4], ecx
test byte [ebp - 0x1f0], 4
je 0x41f09c
test byte [edi + 0x172], 0x40
je 0x41f09c
test byte [edi + 0x173], 8
je 0x41f09c
cmp byte [edi + 0x15c], 1
je 0x41f101
movsx ecx, byte [edi + 0x15e]
cmp ecx, 2
jne 0x41f0d0
movsx ecx, byte [edi + 0x15c]
cmp ecx, 7
je 0x41f101
cmp ecx, 6
je 0x41f101
cmp ecx, 8
je 0x41f101
mov ecx, dword [ebp - 0x1f4]
dec ecx
mov dword [ebp - 0x1f4], ecx
mov dword [edi + 0x44], ecx
jmp 0x41f101
cmp ecx, 1
jne 0x41f101
movsx ecx, byte [edi + 0x15c]
cmp ecx, 7
je 0x41f0fb
cmp ecx, 6
je 0x41f0fb
cmp ecx, 8
je 0x41f0fb
mov ecx, dword [ebp - 0x1f4]
dec ecx
mov dword [ebp - 0x1f4], ecx
mov dword [edi + 0x44], ecx
add eax, 5
mov dword [edi + 0x3c], eax
mov ecx, dword [ebp - 0x1f4]
sub ecx, eax
push ecx
push 0x20
push eax
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], 0
mov dword [ebp - 0x1e0], edx
call fcn.004b4870
mov edx, dword [ebp - 0x1e0]
add esp, 0xc
mov dword [edi + 0x130], 1
and byte [edi + 0x179], 0x7f
test edx, edx
je 0x41f147
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
push ebx
mov eax, dword [edi + 0x3c]
lea edx, [ebp + 0x10]
push edx
mov dword [edi + 0x4c], eax
lea ecx, [ebp + 0xc]
push ecx
call fcn.004289d0
add esp, 0xc
cmp eax, 1
jne 0x41e949
jmp 0x4203b6
cmp ebx, 1
jle 0x41f298
mov eax, dword [ebp - 0x380]
cmp eax, 7
je 0x41f189
cmp eax, 8
jne 0x41f266
cmp dword [ebp - 0x20], 0
je 0x41f1a8
mov eax, dword [ebp - 0x1cc]
dec ebx
add dword [ebp - 0x1d8], eax
mov dword [ebp - 0x20], 0
jmp 0x41f55d
cmp dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x20]
je 0x41f1b6
mov eax, 1
mov edx, dword [ebp - 0x37c]
test edx, edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x3c], edx
jle 0x41f23e
mov eax, edx
mov edx, eax
shr edx, 0x1f
add edx, eax
xor eax, eax
sar edx, 1
test edx, edx
jbe 0x4204ef
mov dword [ebp - 0x40], edi
xor ecx, ecx
mov edi, dword [ebp + ecx*8 - 0x1c8]
sub edi, dword [ebp + ecx*8 - 0xd0]
imul edi, dword [ebp + ecx*8 - 0x14c]
add eax, edi
mov edi, dword [ebp + ecx*8 - 0x1c4]
sub edi, dword [ebp + ecx*8 - 0xcc]
imul edi, dword [ebp + ecx*8 - 0x148]
inc ecx
add eax, edi
cmp ecx, edx
jb 0x41f1e0
mov edi, dword [ebp - 0x40]
lea edx, [ecx + ecx + 1]
lea ecx, [edx - 1]
cmp ecx, dword [ebp - 0x3c]
jae 0x41f240
mov ecx, dword [ebp + edx*4 - 0x1cc]
sub ecx, dword [ebp + edx*4 - 0xd4]
imul ecx, dword [ebp + edx*4 - 0x150]
add eax, ecx
jmp 0x41f240
xor eax, eax
add eax, dword [ebp - 0x378]
lea edx, [ebp - 0x1c8]
mov dword [ebp - 0x1d8], eax
lea eax, [ebp - 0x380]
push eax
push edx
push 0
call fcn.0041bd00
add esp, 0xc
jmp 0x41f281
mov edx, dword [ebp - 0x20]
test edx, edx
mov eax, dword [ebp - 0x1cc]
je 0x41f278
mov edx, 0
add dword [ebp - 0x1d8], eax
mov dword [ebp - 0x20], edx
mov dword [edi + 0x128], 0
dec ebx
or byte [edi + 0x179], 0x80
jmp 0x41f55d
lea eax, [ebp - 0x380]
push eax
lea edx, [ebp - 0x1d8]
push edx
lea ecx, [ebp + 0x10]
push ecx
lea ebx, [ebp + 0xc]
push ebx
call fcn.00428a70
add esp, 0x10
test eax, eax
jne 0x420840
mov ecx, dword [ebp - 0x1d0]
cmp ecx, 2
je 0x420977
cmp ecx, 1
je 0x420010
mov eax, dword [ebp - 0x380]
cmp eax, 7
jl 0x41f4cb
cmp eax, 8
jg 0x41f4cb
mov eax, dword [ebp - 0x1cc]
test eax, eax
mov dword [ebp - 0x1fc], eax
je 0x41f311
mov eax, dword [ebp - 0x1d4]
cdq
mov ebx, dword [ebp - 0x1fc]
idiv ebx
mov ebx, eax
jmp 0x41f324
test byte [edi + 0x170], 2
je 0x41f4bd
mov ebx, dword [ebp - 0x1d4]
test ebx, ebx
je 0x41f4bf
lea eax, [ecx - 0x1c]
cmp eax, 0x10
jbe 0x41f342
cmp ecx, 0x34
je 0x41f342
mov dword [ebp - 0x1c], 0
jmp 0x41f34d
mov eax, 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x37c]
test eax, eax
mov dword [ebp - 0x384], eax
jle 0x41f492
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
test edx, edx
jbe 0x420503
mov dword [ebp - 0x3c8], esi
xor ecx, ecx
mov dword [ebp - 0x40], edi
lea esi, [esi]
lea eax, [ecx + ecx*2]
mov esi, dword [ebp + eax*8 - 0x36c]
mov dword [ebp + ecx*8 - 0x14c], esi
mov edi, dword [ebp + eax*8 - 0x370]
mov esi, dword [ebp + eax*8 - 0x364]
mov eax, dword [ebp + eax*8 - 0x360]
mov dword [ebp + ecx*8 - 0xd0], edi
mov dword [ebp + ecx*8 - 0x1c8], edi
mov dword [ebp + ecx*8 - 0xcc], esi
mov dword [ebp + ecx*8 - 0x148], eax
mov dword [ebp + ecx*8 - 0x1c4], esi
inc ecx
cmp ecx, edx
jb 0x41f380
mov esi, dword [ebp - 0x3c8]
lea edx, [ecx + ecx + 1]
mov edi, dword [ebp - 0x40]
lea eax, [edx - 1]
cmp eax, dword [ebp - 0x384]
jae 0x41f413
lea ecx, [edx*8]
lea ecx, [ecx + edx*4]
mov eax, dword [ebp + ecx - 0x37c]
mov ecx, dword [ebp + ecx - 0x378]
mov dword [ebp + edx*4 - 0xd4], eax
mov dword [ebp + edx*4 - 0x150], ecx
mov dword [ebp + edx*4 - 0x1cc], eax
mov eax, dword [ebp - 0x384]
mov edx, eax
shr edx, 0x1f
add edx, eax
xor eax, eax
sar edx, 1
test edx, edx
jbe 0x4204f9
mov dword [ebp - 0x40], edi
xor ecx, ecx
mov edi, dword [ebp + ecx*8 - 0x1c8]
sub edi, dword [ebp + ecx*8 - 0xd0]
imul edi, dword [ebp + ecx*8 - 0x14c]
add eax, edi
mov edi, dword [ebp + ecx*8 - 0x1c4]
sub edi, dword [ebp + ecx*8 - 0xcc]
imul edi, dword [ebp + ecx*8 - 0x148]
inc ecx
add eax, edi
cmp ecx, edx
jb 0x41f431
mov edi, dword [ebp - 0x40]
lea edx, [ecx + ecx + 1]
lea ecx, [edx - 1]
cmp ecx, dword [ebp - 0x384]
jae 0x41f494
mov ecx, dword [ebp + edx*4 - 0x1cc]
sub ecx, dword [ebp + edx*4 - 0xd4]
imul ecx, dword [ebp + edx*4 - 0x150]
add eax, ecx
jmp 0x41f494
xor eax, eax
add eax, dword [ebp - 0x378]
lea edx, [ebp - 0x1c8]
mov dword [ebp - 0x1d8], eax
lea eax, [ebp - 0x380]
push eax
push edx
push 0
call fcn.0041bd00
add esp, 0xc
jmp 0x41f54c
xor ebx, ebx
mov dword [ebp - 0x18], 1
jmp 0x41f563
cmp eax, 6
je 0x41f4d5
cmp eax, 5
jne 0x41f52c
movzx ecx, byte [edi + 0x170]
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 0x41f50a
mov eax, ebx
cdq
mov ebx, dword [ebp - 0x1dc]
idiv ebx
mov ebx, eax
test ecx, ecx
jne 0x41f515
jmp 0x41f55d
test ecx, ecx
jne 0x41f513
mov ebx, 0
je 0x41f55d
test ebx, ebx
jne 0x41f54c
mov dword [edi + 0x128], 1
mov dword [ebp - 0x18], 1
jmp 0x41f563
lea eax, [ecx - 0x1c]
cmp eax, 0x10
jbe 0x41f540
cmp ecx, 0x34
je 0x41f540
mov ebx, 1
jmp 0x41f54c
mov dword [ebp - 0x20], 1
mov ebx, 2
mov dword [edi + 0x128], 0
or byte [edi + 0x179], 0x80
cmp dword [ebp - 0x18], 0
je 0x41f57f
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x41f576
mov dword [esi + 0xc], 2
jmp 0x41e949
inc eax
mov dword [esi + 0xc], eax
jmp 0x41e949
mov eax, dword [esi]
and byte [esi + 0x9f], 0xf7
movsx ecx, byte [esi + 0x98]
movzx edx, byte [eax + 0x176]
test edx, 0x80
je 0x41f5c4
mov eax, dword [ecx*4 + 0x4d4c80]
test eax, eax
je 0x41f5c4
mov edx, dword [ebp - 0x1d0]
movsx eax, byte [eax + edx]
test eax, eax
je 0x41f5c4
mov dword [ebp - 0x1d0], eax
movsx ecx, byte [esi + 0x98]
lea eax, [ecx - 0x13]
cmp eax, 0x20
ja case.default.0x41f5d0
jmp dword [eax*4 + 0x4d1f80]
mov edx, dword [esi + 0x88]
test edx, edx
jne 0x41f622
movzx eax, byte [esi + 0xa0]
or eax, 2
mov byte [esi + 0xa0], al
mov edx, dword [ebp - 0x1d0]
mov dword [ebp - 0x2c], eax
movsx edx, word [edx*2 + 0x4d4b20]
cmp edx, 0xffffffff
mov dword [esi + 0x88], edx
je 0x42050d
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fb11
jmp 0x41fb4f
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fb11
movzx eax, byte [esi + 0xa0]
mov dword [ebp - 0x2c], eax
jmp 0x41fb4f
mov eax, dword [ebp - 0x1d0]
movsx edx, word [eax*2 + 0x4d4b20]
cmp edx, 0xffffffff
mov dword [esi + 0x88], edx
je 0x420537
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fb11
jmp 0x41f62e
mov edx, dword [esi + 0x88]
test edx, edx
jne 0x41f6b2
movzx eax, byte [esi + 0xa0]
or eax, 2
mov byte [esi + 0xa0], al
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1d0]
movsx edx, byte [eax + 0x4d4eed]
cmp edx, 0xffffffff
mov dword [esi + 0x88], edx
je 0x420561
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fb11
jmp 0x41fb4f
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fb11
jmp 0x41f62e
mov edx, dword [esi + 0x88]
test edx, edx
jne 0x41f704
movzx eax, byte [esi + 0xa0]
add ecx, 0xffffffd8
or eax, 2
mov byte [esi + 0xa0], al
cmp ecx, 0x20
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1d0]
movsx edx, byte [eax + 0x4d4edb]
mov dword [esi + 0x88], edx
jb 0x41fb11
jmp 0x41fb4f
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fb11
jmp 0x41f62e
mov edx, dword [esi + 0x88]
test edx, edx
jne 0x41f7f5
or byte [esi + 0xa1], 4
mov eax, dword [ebp - 0x1d0]
lea edx, [eax - 0x19]
mov dword [ebp - 0x3d4], edx
cmp edx, 0x1b
ja 0x41f7a5
movzx eax, byte [esi + 0xa0]
or eax, 2
movsx edx, word [edx*8 + 0x4d4ba0]
mov dword [ebp - 0x2c], eax
mov byte [esi + 0xa0], al
movsx eax, word [esi + 0x90]
test eax, eax
mov dword [esi + 0x88], edx
jne 0x41f77f
mov eax, dword [ebp - 0x3d4]
movzx eax, word [eax*8 + 0x4d4ba4]
mov word [esi + 0x90], ax
mov eax, dword [ebp - 0x3d4]
add ecx, 0xffffffd8
cmp ecx, 0x20
movzx eax, word [eax*8 + 0x4d4ba6]
mov word [esi + 0x92], ax
jb 0x41fb11
jmp 0x41fb4f
lea edx, [eax - 5]
cmp edx, 0xc
ja 0x41f7e4
movzx eax, byte [esi + 0xa0]
add ecx, 0xffffffd8
or eax, 2
mov byte [esi + 0xa0], al
cmp ecx, 0x20
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1d0]
movsx edx, byte [eax + 0x4d4edb]
mov dword [esi + 0x88], edx
jb 0x41fb11
jmp 0x41fb4f
and eax, 0xfffffffe
cmp eax, 0x38
je 0x42058b
jmp 0x41fa3f
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fb11
jmp 0x41f62e
mov edx, dword [esi + 0x88]
test edx, edx
jne 0x41f87b
or byte [esi + 0xa1], 4
mov eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x3cc], eax
lea eax, [eax - 5]
cmp eax, 0xc
ja 0x41f853
or byte [esi + 0xa0], 2
mov edx, dword [ebp - 0x1d0]
movsx edx, byte [edx + 0x4d4edb]
mov dword [esi + 0x88], edx
mov eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x3cc], eax
jmp 0x41f887
mov eax, dword [ebp - 0x3cc]
and eax, 0xfffffffe
cmp eax, 0x38
jne 0x41f887
mov edx, dword [ebp - 0x1cc]
mov dword [esi + 0x88], edx
mov eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x3cc], eax
jmp 0x41f887
mov eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x3cc], eax
cmp dword [ebp - 0x3cc], 0x19
jge case.0x41f5d0.30
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fb11
jmp 0x41f62e
mov edx, dword [esi + 0x88]
test edx, edx
jne 0x41f8ec
movzx eax, byte [esi + 0xa0]
add ecx, 0xffffffd8
or eax, 2
mov byte [esi + 0xa0], al
mov edx, dword [ebp - 0x1d0]
mov dword [ebp - 0x2c], eax
movsx eax, word [esi + 0x90]
movsx edx, word [edx*8 + 0x4d4ada]
add edx, eax
mov dword [esi + 0x88], edx
cmp ecx, 0x20
jb 0x41fb11
jmp 0x41fb4f
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fb11
jmp 0x41f62e
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fb11
jmp 0x41fb3f
mov eax, dword [ebp - 0x1d0]
movsx edx, byte [eax + 0x4d4eed]
cmp edx, 0xffffffff
mov dword [esi + 0x88], edx
je 0x4205a8
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fb11
jmp 0x41f62e
mov eax, dword [ebp - 0x1d0]
add eax, 0xfffffffb
cmp eax, 0xc
ja 0x41fa3f
add ecx, 0xffffffd8
mov edx, 2
mov dword [esi + 0x88], 2
cmp ecx, 0x20
jb 0x41fb11
jmp 0x41f62e
mov edx, dword [ebp - 0x1d0]
lea eax, [edx - 5]
cmp eax, 0xc
ja 0x41fa3f
add ecx, 0xffffffd8
movsx edx, byte [edx + 0x4d4edb]
cmp ecx, 0x20
mov dword [esi + 0x88], edx
jb 0x41fb11
jmp 0x41f62e
or byte [esi + 0xa1], 4
mov eax, dword [ebp - 0x1d0]
lea edx, [eax - 0x19]
cmp edx, 0x1b
ja 0x41f9fd
mov eax, edx
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, word [eax*8 + 0x4d4ba0]
mov dword [ebp - 0x1f8], edx
mov dword [esi + 0x88], edx
movzx edx, word [eax*8 + 0x4d4ba4]
movzx eax, word [eax*8 + 0x4d4ba6]
mov word [esi + 0x90], dx
mov word [esi + 0x92], ax
mov edx, dword [ebp - 0x1f8]
jb 0x41fb11
jmp 0x41f62e
lea edx, [eax - 5]
cmp edx, 0xc
ja 0x41fa23
add ecx, 0xffffffd8
movsx edx, byte [eax + 0x4d4edb]
cmp ecx, 0x20
mov dword [esi + 0x88], edx
jb 0x41fb11
jmp 0x41f62e
and eax, 0xfffffffe
cmp eax, 0x38
je 0x4205d2
jmp 0x41fa3f
mov eax, dword [ebp - 0x1d0]
add eax, 0xffffffe7
cmp eax, 0x1b
jbe 0x41faab
add ecx, 0xffffffd8
mov eax, 0x3d
cmp ecx, 0x20
jb 0x41fb13
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4205ef
test byte [edx + 0x44], 2
je 0x41fa86
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x41fa79
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 + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423970
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 + 0x4d4ba0]
mov dword [ebp - 0x1f8], edx
mov dword [esi + 0x88], edx
movzx edx, word [eax*8 + 0x4d4ba4]
movzx eax, word [eax*8 + 0x4d4ba6]
mov word [esi + 0x90], dx
mov word [esi + 0x92], ax
mov edx, dword [ebp - 0x1f8]
jb 0x41fb11
jmp 0x41f62e
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x88], edx
jb 0x41fb11
jmp 0x41f62e
add ecx, 0xffffffd8
cmp ecx, 0x20
jae 0x41fb3f
xor eax, eax
mov edx, 1
shl edx, cl
test dl, 0x25
je 0x41fb37
mov ecx, dword [esi + 0x90]
mov edx, dword [esi + 0x88]
cmp ecx, edx
jge 0x41fb31
mov ecx, edx
mov dword [esi + 0x88], ecx
test eax, eax
jne 0x41fa50
movzx eax, byte [esi + 0xa0]
mov edx, dword [esi + 0x88]
mov dword [ebp - 0x2c], eax
test byte [ebp - 0x2c], 2
je 0x41fc26
test edx, edx
jle 0x41fb71
movsx eax, word [esi + 0x90]
cmp eax, edx
jle 0x41fb71
lea edx, [eax + 1]
mov dword [esi + 0x88], edx
cmp edx, 0x40
ja 0x41fb88
mov dword [ebp - 0x24], 0
lea eax, [ebp - 0x3c4]
mov dword [ebp - 0x28], eax
jmp 0x41fba5
lea eax, [ebp - 0x28]
push eax
push 0
push edx
call fcn.004172d0
add esp, 0xc
test eax, eax
jne 0x42067a
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
push dword [esi + 0x88]
push 0x20
push eax
call fcn.004b4870
push dword [ebp - 0x28]
push esi
lea eax, [ebp - 0x1d8]
push eax
call fcn.00428db0
add esp, 0x18
test eax, eax
je 0x41fbe3
cmp eax, 0x3f
jne 0x420609
test byte [edi + 0x177], 8
jne 0x41fbe3
mov dword [esi + 0x10], 0x3f
mov edx, dword [esi + 0x88]
test edx, edx
je 0x41fc08
mov eax, dword [ebp - 0x28]
cmp byte [eax], 0x20
jne 0x41fc26
inc eax
mov dword [ebp - 0x28], eax
mov edx, dword [esi + 0x88]
dec edx
mov dword [esi + 0x88], edx
jne 0x41fbed
movsx eax, word [esi + 0x90]
test eax, eax
jne 0x41fc26
mov dword [esi + 0x88], 1
dec dword [ebp - 0x28]
mov edx, dword [esi + 0x88]
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
jb 0x420786
movzx eax, byte [esi + 0xa0]
test al, 2
je 0x41fcc5
cmp dword [esi + 0x88], 0
je 0x41fc9c
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 + 0x88]
dec eax
je 0x4206eb
mov dword [esi + 0x88], eax
mov eax, dword [ebp - 0x28]
movsx eax, byte [eax]
cmp eax, 0x20
je 0x4206eb
mov edx, dword [edi + 0x3c]
mov byte [edx], al
inc dword [edi + 0x3c]
inc dword [ebp - 0x28]
mov eax, dword [esi + 0x88]
dec eax
jne 0x41fc6e
jmp 0x4206eb
and eax, 0xfffffffd
mov byte [esi + 0xa0], al
mov dword [esi + 0x88], 0
cmp dword [ebp - 0x24], 0
je 0x41fcc0
push dword [ebp - 0x24]
call fcn.00417390
add esp, 4
mov edx, dword [edi + 0x3c]
jmp 0x41fcec
push dword [edi + 0x3c]
push esi
lea eax, [ebp - 0x1d8]
push eax
call fcn.00428db0
add esp, 0xc
test eax, eax
jne 0x4206f7
mov edx, dword [edi + 0x3c]
add edx, dword [esi + 0x88]
mov dword [edi + 0x3c], edx
mov eax, dword [edi + 0x4c]
cmp edx, eax
ja 0x41fcf5
mov edx, eax
mov dword [edi + 0x4c], edx
jmp 0x41e949
mov edx, dword [edi + 0x18]
test edx, edx
je 0x41fd54
test byte [edx + 0x44], 2
je 0x41fd2f
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x41fd22
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 + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423970
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.00408a80
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 0x41e9b3
cmp ebx, 1
jg 0x41e9b3
or eax, 0x40
mov byte [esi + 0x9f], al
jmp 0x41e9bc
cmp dword [ebp - 0x20], 0
jne 0x41e9a7
cmp ebx, 1
jg 0x41e9a7
or eax, 0x20
jmp 0x41e9b3
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x41fdb5
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 - 0x1ec], ebx
xor ecx, ecx
mov ebx, dword [ebp - 0x50]
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 + 0x88]
jl 0x41fdcf
mov ebx, dword [ebp - 0x1ec]
jmp 0x41ea8f
mov edx, ecx
sub edx, dword [ebp - 0x4c]
cmp edx, 0x200
mov eax, dword [edi + 0xf8]
jge 0x41fe08
mov edx, 0x200
shr eax, 3
cmp edx, eax
jge 0x41fe11
mov edx, eax
push edx
push edi
call fcn.0041bb00
add esp, 8
test eax, eax
jne 0x41fe30
mov edx, dword [esi + 0x88]
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x44], edx
jmp 0x41ea85
mov eax, dword [edi + 0x18]
test eax, eax
je 0x41fe96
test byte [eax + 0x44], 2
je 0x41fe6c
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 0x41fe5a
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 + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423970
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.00408a80
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 0x41fedf
cmp edx, 0x2b
jne 0x41fed1
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x175]
and eax, 0xffffffbf
mov byte [edi + 0x175], al
jmp 0x41eaea
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x175]
jmp 0x41fed1
push edi
mov eax, 0x2c
push eax
push eax
push 1
call fcn.00408a80
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 0x41ff71
test byte [eax + 0x44], 2
je 0x41ff47
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 0x41ff35
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 + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423970
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.00408a80
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 0x41ffe7
test byte [edx + 0x44], 2
je 0x41ffc2
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x41ffb5
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 + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423970
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.00408a80
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 0x420242
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x420021
cmp byte [eax + 0x1e], 0
jne 0x420129
cmp dword [edi + 0x134], 0
je 0x420038
mov dword [edi + 0x134], 0
xor edx, edx
jmp 0x42003d
mov edx, 1
cmp dword [edi + 0x128], 0
jne 0x420055
cmp dword [ebp - 0x18], 0
je 0x420085
cmp dword [edi + 0x130], 0
je 0x420085
movzx eax, byte [edi + 0x179]
test eax, 0x80
mov dword [edi + 0x128], 0
je 0x420078
and eax, 0x7f
mov byte [edi + 0x179], al
jmp 0x42008d
cmp dword [edi + 0x130], 0
jne 0x420129
test edx, edx
je 0x420129
movzx eax, byte [edi + 0x175]
test al, 0x40
je 0x4200a5
cmp byte [edi + 0x15e], 1
je 0x4202cf
push edi
call fcn.00418c40
add esp, 4
test eax, eax
je 0x42010d
mov edx, dword [edi + 0x18]
test edx, edx
je 0x420281
test byte [edx + 0x44], 2
je 0x4200e8
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4200db
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 + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423970
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 + 0x177], 0xfb
and byte [edi + 0x179], 0x7f
movzx eax, byte [esi + 0x9f]
test al, 2
je 0x4201a7
push dword [esi + 4]
and eax, 0xfffffffd
mov byte [esi + 0x9f], al
call fcn.00417390
add esp, 4
test eax, eax
je 0x4201a7
mov edx, dword [edi + 0x18]
test edx, edx
je 0x42029b
test byte [edx + 0x44], 2
je 0x420182
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x420175
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 + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423970
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 0x42020f
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4202b5
test byte [eax + 0x44], 2
je 0x4201ea
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 0x4201da
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 + 0x174]
push edx
and eax, 7
push eax
push 0xffffffffffffffff
push edi
call fcn.00423970
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 + 0x174], 0xdc
and byte [edi + 0x176], 0xf7
call fcn.004140a0
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 0x42025d
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.004289d0
add esp, 0xc
cmp eax, 2
je 0x420247
cmp eax, 1
jne 0x41e949
jmp 0x420010
push edi
push eax
push eax
push 1
call fcn.00408a80
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.00408a80
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.00408a80
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 0x4202f9
cmp edx, 0x2b
jne 0x4202eb
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x175]
and eax, 0xffffffbf
mov byte [edi + 0x175], al
jmp 0x4200a5
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x175]
jmp 0x4202eb
push edi
mov eax, 0x69
push eax
push eax
push 1
call fcn.00408a80
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 0x420010
cmp ebx, 2
jge 0x420010
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 eax, byte [ecx + 5]
cmp eax, 0x20
je 0x420384
cmp eax, 0x2b
jne 0x420370
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x175]
mov dword [ebp - 0x1e4], eax
mov eax, dword [ebp - 0x1e4]
and eax, 0xffffffbf
mov byte [edi + 0x175], al
jmp 0x41ee7e
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x175]
mov dword [ebp - 0x1e4], eax
jmp 0x420370
push edi
mov eax, 0x2c
push eax
push eax
push 1
call fcn.00408a80
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
and byte [edi + 0x179], 0x7f
mov dword [edi + 0x134], 1
jmp 0x420010
mov eax, dword [edi + 0x18]
test eax, eax
je 0x420432
test byte [eax + 0x44], 2
je 0x420408
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 0x4203f6
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 + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423970
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.00408a80
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 0x4204a8
test byte [edx + 0x44], 2
je 0x420483
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x420476
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 + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423970
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.00408a80
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 0x41ee18
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 0x420010
jmp 0x41ee18
mov edx, 1
jmp 0x41f21c
mov edx, 1
jmp 0x41f46d
mov edx, 1
jmp 0x41f3db
mov edx, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
shl edx, 3
cmp edx, 0x11
jge 0x420523
mov edx, 0x11
mov dword [esi + 0x88], edx
cmp ecx, 0x20
jb 0x41fb11
jmp 0x41fb4f
mov edx, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
shl edx, 3
cmp edx, 0x11
jge 0x42054d
mov edx, 0x11
mov dword [esi + 0x88], edx
cmp ecx, 0x20
jb 0x41fb11
jmp 0x41f62e
mov eax, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
lea edx, [eax + eax*2]
cmp edx, 7
jge 0x420577
mov edx, 7
mov dword [esi + 0x88], edx
cmp ecx, 0x20
jb 0x41fb11
jmp 0x41fb4f
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x88], edx
jb 0x41fb11
jmp 0x41f62e
mov eax, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
lea edx, [eax + eax*2]
cmp edx, 7
jge 0x4205be
mov edx, 7
mov dword [esi + 0x88], edx
cmp ecx, 0x20
jb 0x41fb11
jmp 0x41f62e
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x88], edx
jb 0x41fb11
jmp 0x41f62e
push edi
push eax
push eax
push 1
call fcn.00408a80
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 0x420660
test byte [edx + 0x44], 2
je 0x42063b
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x42062e
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 + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423970
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.00408a80
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 0x4206d1
test byte [edx + 0x44], 2
je 0x4206ac
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x42069f
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 + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423970
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.00408a80
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 + 0xa0]
jmp 0x41fc9c
cmp eax, 0x3f
jne 0x420715
test byte [edi + 0x177], 8
jne 0x41fce0
mov dword [esi + 0x10], 0x3f
jmp 0x41fce0
mov edx, dword [edi + 0x18]
test edx, edx
je 0x42076c
test byte [edx + 0x44], 2
je 0x420747
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x42073a
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 + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423970
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.00408a80
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 - 0x30]
sub eax, dword [ebp - 0x34]
add eax, edx
cmp eax, 0x200
mov edx, dword [edi + 0xf8]
jge 0x4207a0
mov eax, 0x200
shr edx, 3
cmp eax, edx
jge 0x4207a9
mov eax, edx
push eax
push edi
call fcn.0041bb00
add esp, 8
test eax, eax
je 0x41fc3c
mov eax, dword [edi + 0x18]
test eax, eax
je 0x420821
test byte [eax + 0x44], 2
je 0x4207f7
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 0x4207e5
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 + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423970
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.00408a80
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 0x420897
test byte [edx + 0x44], 2
je 0x420872
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x420865
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 + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423970
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.00408a80
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 0x420908
test byte [edx + 0x44], 2
je 0x4208e3
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4208d6
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 + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.00423970
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.00408a80
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 0x41ea19
cmp ebx, 1
jg 0x41ea19
or eax, 0x40
mov byte [esi + 0x9f], al
jmp 0x41ea22
cmp dword [ebp - 0x20], 0
jne 0x41ea06
cmp ebx, 1
jg 0x41ea06
movzx eax, byte [esi + 0x9f]
or eax, 0x20
jmp 0x41ea19
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 0x42098c
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