Function at 0x41fbf6
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 0x420b1e
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 0x41ee84
lea eax, [edx - 1]
mov dword [ebp - 4], eax
mov dword [esi + 0xc], eax
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x41eeca
test al, 0x20
je 0x41eeca
mov ecx, dword [ebp + 0xc]
movsx ecx, byte [ecx]
cmp ecx, 2
je 0x41ff99
and eax, 0xffffffdf
cmp ecx, 1
je 0x41ff7e
and eax, 0xffffffbf
push edi
mov byte [esi + 0x4f], al
mov dword [ebp - 0x38], edx
call fcn.00438590
mov edx, dword [ebp - 0x38]
add esp, 4
test eax, eax
jne 0x41ff0d
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x41ee76
test al, 0x20
jne 0x420aeb
mov edx, dword [ebp - 4]
mov dword [esi + 0xc], edx
or eax, 0x20
mov byte [esi + 0x4f], al
jmp 0x41eeca
mov eax, dword [ebp + 0xc]
movsx edx, byte [eax]
cmp edx, 2
je 0x420acc
movzx eax, byte [esi + 0x4f]
and eax, 0xffffffdf
cmp edx, 1
je 0x420ab1
and eax, 0xffffffbf
push edi
mov byte [esi + 0x4f], al
call fcn.00438590
add esp, 4
test eax, eax
jne 0x420a40
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x41eeca
test al, 0x20
jne 0x41ffb4
movsx edx, byte [esi + 0x48]
add edx, 0xfffffffe
cmp edx, 0x1a
ja case.0x41eee1.3
mov edx, dword [edx*4 + 0x4d3440]
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 0x41ef49
mov edx, ecx
sub edx, dword [ebp - 0x1bc]
cmp edx, 0x200
mov eax, dword [edi + 0xf8]
jge 0x41ef22
mov edx, 0x200
shr eax, 3
cmp edx, eax
jge 0x41ef2b
mov edx, eax
push edx
push edi
call fcn.0042f000
add esp, 8
test eax, eax
jne 0x41fffa
mov edx, dword [esi + 0x38]
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x1b4], edx
cmp dword [ebp - 0x1b4], 0
jg 0x41ffce
mov edx, dword [edi + 0x4c]
cmp eax, edx
mov dword [edi + 0x128], 0
ja 0x41ef69
mov eax, edx
mov dword [edi + 0x4c], eax
or byte [edi + 0x171], 0x80
jmp 0x41ee09
mov edx, dword [edi + 0x7c]
test edx, edx
je 0x41ef97
movzx eax, byte [edx + 0x1e]
test eax, eax
je 0x41ef97
mov byte [edx + 0x1e], 0
mov dword [ebp - 0x1b8], 1
jmp 0x41efa1
mov dword [ebp - 0x1b8], 0
movzx eax, byte [edi + 0x16d]
test al, 0x40
je 0x41efb9
cmp byte [edi + 0x156], 1
je 0x42007f
push edi
call fcn.00432160
add esp, 4
test eax, eax
jne 0x42015a
add dword [edi + 0x98], 1
push 0
push edi
adc dword [edi + 0x9c], 0
and byte [edi + 0x16f], 0xfb
call fcn.00433650
add esp, 8
test eax, eax
jne 0x4200d5
movsx eax, byte [edi + 0x154]
mov dword [ebp - 0x1c4], eax
lea eax, [eax - 1]
cmp eax, 7
ja case.default.0x41f012
mov eax, dword [eax*4 + 0x4d34c0]
jmp eax
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x41f020
mov dword [edi + 0x3c], ecx
jmp 0x41f026
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 0x41f156
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4200b6
test byte [eax + 0x44], 2
je 0x41f07f
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 0x41f06d
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.00427cb0
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 0x41f0b5
add ecx, 4
jmp 0x41f0bb
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 0x41f156
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x41f0e3
mov dword [edi + 0x3c], ecx
jmp 0x41f0e9
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 0x41f11f
test byte [edi + 0x16a], 0x40
je 0x41f11f
test byte [edi + 0x16b], 8
je 0x41f11f
cmp dword [ebp - 0x1c4], 1
je 0x41f124
mov dword [edi + 0x44], eax
jmp 0x41f156
mov eax, dword [ebp - 0x1ec]
lea eax, [ecx + eax - 2]
mov dword [edi + 0x44], eax
jmp 0x41f156
push 0x464
push str.for_wseq_fmt.c
push 2
push 8
call fcn.00414b90
add esp, 0x10
movzx edx, byte [edi + 0x168]
mov ecx, dword [edi + 0x3c]
mov eax, dword [edi + 0x44]
test dl, 4
je 0x41f176
test byte [edi + 0x16a], 0x40
je 0x41f176
test byte [edi + 0x16b], 8
je 0x41f176
cmp byte [edi + 0x154], 1
je 0x41f1c3
movsx edx, byte [edi + 0x156]
cmp edx, 2
jne 0x41f19e
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x41f1c3
cmp edx, 6
je 0x41f1c3
cmp edx, 8
je 0x41f1c3
dec eax
mov dword [edi + 0x44], eax
jmp 0x41f1c3
cmp edx, 1
jne 0x41f1c3
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x41f1bd
cmp edx, 6
je 0x41f1bd
cmp edx, 8
je 0x41f1bd
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.004b2260
add esp, 0xc
mov dword [edi + 0x128], 0
cmp dword [ebp - 0x1b8], 0
je 0x41ee09
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
jmp 0x41ee09
cmp ebx, 2
jge 0x41ee09
jmp 0x4201cb
test byte [edi + 0x168], 4
je 0x41f223
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
mov edx, dword [edi + 0x7c]
mov dword [edx + 0xc], edi
jmp 0x41ee09
or byte [edi + 0x16d], 0x40
jmp 0x41ee09
mov edx, dword [ebp + 0xc]
movsx edx, byte [edx]
cmp edx, 1
je 0x42065b
cmp edx, 2
je 0x42063c
test byte [esi + 0x4e], 0x20
jne 0x41f2f2
test byte [edi + 0x168], 2
je 0x41f288
test eax, 0x80
je 0x41f288
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.0042d3c0
add esp, 0x14
test eax, eax
jne 0x4204c7
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4204a8
test byte [eax + 0x44], 2
je 0x41f2c8
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 0x41f2b6
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.00427cb0
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 0x41f311
movzx eax, byte [edx + 0x1e]
test eax, eax
je 0x41f311
mov byte [edx + 0x1e], 0
mov dword [ebp - 0x1c8], 1
jmp 0x41f31b
mov dword [ebp - 0x1c8], 0
cmp dword [edi + 0x128], 0
je 0x41f349
movzx eax, byte [edi + 0x171]
test eax, 0x80
mov dword [edi + 0x128], 0
jne 0x41f349
cmp dword [edi + 0x130], 0
jne 0x41f594
movzx eax, byte [edi + 0x16d]
test al, 0x40
je 0x41f361
cmp byte [edi + 0x156], 1
je 0x4204f0
push edi
call fcn.00432160
add esp, 4
test eax, eax
jne 0x4205cb
add dword [edi + 0x98], 1
push 0
push edi
adc dword [edi + 0x9c], 0
and byte [edi + 0x16f], 0xfb
call fcn.00433650
add esp, 8
test eax, eax
jne 0x420546
movsx eax, byte [edi + 0x154]
mov dword [ebp - 0x1e4], eax
lea eax, [eax - 1]
cmp eax, 7
ja case.default.0x41f3ba
mov eax, dword [eax*4 + 0x4d34e0]
jmp eax
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x41f3c8
mov dword [edi + 0x3c], ecx
jmp 0x41f3ce
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 0x41f4fe
mov eax, dword [edi + 0x18]
test eax, eax
je 0x420527
test byte [eax + 0x44], 2
je 0x41f427
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 0x41f415
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.00427cb0
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 0x41f45d
add ecx, 4
jmp 0x41f463
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 0x41f4fe
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x41f48b
mov dword [edi + 0x3c], ecx
jmp 0x41f491
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 0x41f4c7
test byte [edi + 0x16a], 0x40
je 0x41f4c7
test byte [edi + 0x16b], 8
je 0x41f4c7
cmp dword [ebp - 0x1e4], 1
je 0x41f4cc
mov dword [edi + 0x44], eax
jmp 0x41f4fe
mov eax, dword [ebp - 0x3b8]
lea eax, [ecx + eax - 2]
mov dword [edi + 0x44], eax
jmp 0x41f4fe
push 0x534
push str.for_wseq_fmt.c
push 2
push 8
call fcn.00414b90
add esp, 0x10
movzx edx, byte [edi + 0x168]
mov ecx, dword [edi + 0x3c]
mov eax, dword [edi + 0x44]
test dl, 4
je 0x41f51e
test byte [edi + 0x16a], 0x40
je 0x41f51e
test byte [edi + 0x16b], 8
je 0x41f51e
cmp byte [edi + 0x154], 1
je 0x41f56b
movsx edx, byte [edi + 0x156]
cmp edx, 2
jne 0x41f546
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x41f56b
cmp edx, 6
je 0x41f56b
cmp edx, 8
je 0x41f56b
dec eax
mov dword [edi + 0x44], eax
jmp 0x41f56b
cmp edx, 1
jne 0x41f56b
movsx edx, byte [edi + 0x154]
cmp edx, 7
je 0x41f565
cmp edx, 6
je 0x41f565
cmp edx, 8
je 0x41f565
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.004b2260
add esp, 0xc
mov dword [edi + 0x130], 1
and byte [edi + 0x171], 0x7f
cmp dword [ebp - 0x1c8], 0
je 0x41f5a4
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
mov eax, dword [edi + 0x3c]
mov dword [edi + 0x4c], eax
jmp 0x41ee09
cmp ebx, 1
jle 0x41f68b
mov eax, dword [ebp - 0x36c]
cmp eax, 7
je 0x41f5cc
cmp eax, 8
jne 0x41f659
cmp dword [ebp - 0x20], 0
je 0x41f5eb
mov eax, dword [ebp - 0x1cc]
dec ebx
add dword [ebp - 0x1d8], eax
mov dword [ebp - 0x20], 0
jmp 0x41f87f
cmp dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x368]
je 0x41f5ff
mov eax, 1
xor ecx, ecx
mov dword [ebp - 0x20], eax
test edx, edx
jle 0x41f633
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 0x41f610
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.0042f220
add esp, 0xc
jmp 0x41f674
mov edx, dword [ebp - 0x20]
test edx, edx
mov eax, dword [ebp - 0x1cc]
je 0x41f66b
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 0x41f87f
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.0042d150
add esp, 0x10
test eax, eax
jne 0x4209cf
mov ecx, dword [ebp - 0x1d0]
cmp ecx, 2
je 0x420afd
cmp ecx, 1
je 0x4201da
mov eax, dword [ebp - 0x36c]
cmp eax, 7
jl 0x41f7eb
cmp eax, 8
jg 0x41f7eb
mov ebx, dword [ebp - 0x1cc]
test ebx, ebx
je 0x41f6f8
mov eax, dword [ebp - 0x1d4]
cdq
idiv ebx
mov ebx, eax
jmp 0x41f70b
test byte [edi + 0x168], 2
je 0x41f7dd
mov ebx, dword [ebp - 0x1d4]
test ebx, ebx
je 0x41f7df
cmp ecx, 0x34
je 0x41f722
cmp ecx, 0x1c
jl 0x41f72f
cmp ecx, 0x2c
jg 0x41f72f
mov eax, 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], eax
jmp 0x41f736
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x368]
test eax, eax
jle 0x41f782
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 0x41f748
mov edi, dword [ebp - 0x1b0]
test eax, eax
mov ecx, 0
jle 0x41f7b4
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 0x41f791
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.0042f220
add esp, 0xc
jmp 0x41f86e
xor ebx, ebx
mov dword [ebp - 0x18], 1
jmp 0x41f885
cmp eax, 6
je 0x41f7f5
cmp eax, 5
jne 0x41f84c
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 0x41f82a
mov eax, ebx
cdq
mov ebx, dword [ebp - 0x1dc]
idiv ebx
mov ebx, eax
test ecx, ecx
jne 0x41f835
jmp 0x41f87f
test ecx, ecx
jne 0x41f833
mov ebx, 0
je 0x41f87f
test ebx, ebx
jne 0x41f86e
mov dword [edi + 0x128], 1
mov dword [ebp - 0x18], 1
jmp 0x41f885
cmp ecx, 0x34
je 0x41f85b
cmp ecx, 0x1c
jl 0x41f869
cmp ecx, 0x2c
jg 0x41f869
mov dword [ebp - 0x20], 1
mov ebx, 2
jmp 0x41f86e
mov ebx, 1
mov dword [edi + 0x128], 0
or byte [edi + 0x171], 0x80
cmp dword [ebp - 0x18], 0
je 0x41f8a1
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x41f898
mov dword [esi + 0xc], 2
jmp 0x41ee09
inc eax
mov dword [esi + 0xc], eax
jmp 0x41ee09
mov eax, dword [esi]
and byte [esi + 0x4f], 0xf7
movsx ecx, byte [esi + 0x48]
movzx edx, byte [eax + 0x16e]
test edx, 0x80
je 0x41f8dd
mov eax, dword [ecx*4 + 0x4d56c0]
test eax, eax
je 0x41f8dd
mov edx, dword [ebp - 0x1d0]
movsx eax, byte [eax + edx]
test eax, eax
je 0x41f8dd
mov dword [ebp - 0x1d0], eax
movsx ecx, byte [esi + 0x48]
lea eax, [ecx - 0x13]
cmp eax, 0x20
ja case.default.0x41f8f0
mov eax, dword [eax*4 + 0x4d3500]
jmp eax
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x41f931
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 + 0x4d5560]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x420669
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fd44
jmp 0x41fd73
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fd44
movzx eax, byte [esi + 0x50]
mov dword [ebp - 0x2c], eax
jmp 0x41fd73
mov eax, dword [ebp - 0x1d0]
movsx edx, word [eax*2 + 0x4d5560]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x420690
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fd44
jmp 0x41f93d
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x41f9af
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 + 0x4d592d]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x4206b7
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fd44
jmp 0x41fd73
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fd44
jmp 0x41f93d
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x41f9f2
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 + 0x4d591b]
mov dword [esi + 0x38], edx
jb 0x41fd44
jmp 0x41fd73
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fd44
jmp 0x41f93d
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x41fa93
mov eax, dword [ebp - 0x1d0]
cmp eax, 0x19
mov dword [ebp - 0x3bc], eax
jge 0x4206de
cmp dword [ebp - 0x3bc], 5
jl 0x41fa63
cmp dword [ebp - 0x3bc], 0x11
jg 0x41fa63
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 + 0x4d591b]
mov dword [esi + 0x38], edx
jb 0x41fd44
jmp 0x41fd73
cmp dword [ebp - 0x3bc], 0x39
je 0x41fa79
cmp dword [ebp - 0x3bc], 0x38
jne 0x41fc7e
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x41fd44
jmp 0x41f93d
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fd44
jmp 0x41f93d
mov edx, dword [esi + 0x38]
test edx, edx
mov eax, dword [ebp - 0x1d0]
jne 0x41faf0
cmp eax, 5
jl 0x41fad7
cmp eax, 0x11
jg 0x41fad7
or byte [esi + 0x50], 2
mov eax, dword [ebp - 0x1d0]
movsx edx, byte [eax + 0x4d591b]
mov dword [esi + 0x38], edx
mov eax, dword [ebp - 0x1d0]
jmp 0x41faf0
cmp eax, 0x39
je 0x41fae1
cmp eax, 0x38
jne 0x41faf0
mov edx, dword [ebp - 0x1cc]
mov dword [esi + 0x38], edx
mov eax, dword [ebp - 0x1d0]
cmp eax, 0x19
jge case.0x41f8f0.30
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fd44
jmp 0x41f93d
mov edx, dword [esi + 0x38]
test edx, edx
jne 0x41fb42
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 + 0x4d551a]
add edx, eax
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x41fd44
jmp 0x41fd73
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fd44
jmp 0x41f93d
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fd44
jmp 0x41fd69
mov eax, dword [ebp - 0x1d0]
movsx edx, byte [eax + 0x4d592d]
cmp edx, 0xffffffff
mov dword [esi + 0x38], edx
je 0x420742
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x41fd44
jmp 0x41f93d
mov eax, dword [ebp - 0x1d0]
cmp eax, 5
jl 0x41fc7e
cmp eax, 0x11
jg 0x41fc7e
add ecx, 0xffffffd8
mov edx, 2
mov dword [esi + 0x38], 2
cmp ecx, 0x20
jb 0x41fd44
jmp 0x41f93d
mov eax, dword [ebp - 0x1d0]
cmp eax, 5
jl 0x41fc7e
cmp eax, 0x11
jg 0x41fc7e
add ecx, 0xffffffd8
movsx edx, byte [eax + 0x4d591b]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x41fd44
jmp 0x41f93d
mov eax, dword [ebp - 0x1d0]
cmp eax, 0x19
mov dword [ebp - 0x3b4], eax
jge 0x420769
cmp dword [ebp - 0x3b4], 5
jl 0x41fc38
cmp dword [ebp - 0x3b4], 0x11
jg 0x41fc38
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, byte [eax + 0x4d591b]
mov dword [esi + 0x38], edx
jb 0x41fd44
jmp 0x41f93d
cmp dword [ebp - 0x3b4], 0x39
je 0x41fc4a
cmp dword [ebp - 0x3b4], 0x38
jne 0x41fc7e
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x41fd44
jmp 0x41f93d
mov eax, dword [ebp - 0x1d0]
cmp eax, 0x19
mov dword [ebp - 0x1e0], eax
jl 0x41fc7e
cmp dword [ebp - 0x1e0], 0x34
jle 0x41fcea
add ecx, 0xffffffd8
mov eax, 0x3d
cmp ecx, 0x20
jb 0x41fd46
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4207b6
test byte [edx + 0x44], 2
je 0x41fcc5
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x41fcb8
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.00427cb0
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 + 0x4d5518]
mov dword [ebp - 0x370], edx
mov dword [esi + 0x38], edx
movzx edx, word [eax*8 + 0x4d551c]
movzx eax, word [eax*8 + 0x4d551e]
mov word [esi + 0x40], dx
mov word [esi + 0x42], ax
mov edx, dword [ebp - 0x370]
jb 0x41fd44
jmp 0x41f93d
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x38], edx
jb 0x41fd44
jmp 0x41f93d
add ecx, 0xffffffd8
cmp ecx, 0x20
jae 0x41fd69
xor eax, eax
mov edx, 1
shl edx, cl
test dl, 0x25
je 0x41fd61
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x38]
cmp ecx, edx
jge 0x41fd5e
mov ecx, edx
mov dword [esi + 0x38], ecx
test eax, eax
jne 0x41fc8f
movzx eax, byte [esi + 0x50]
mov edx, dword [esi + 0x38]
mov dword [ebp - 0x2c], eax
test byte [ebp - 0x2c], 2
je 0x41fe1d
cmp edx, 0x40
ja 0x41fd94
mov dword [ebp - 0x24], 0
lea eax, [ebp - 0x3b0]
mov dword [ebp - 0x28], eax
jmp 0x41fdb1
lea eax, [ebp - 0x28]
push eax
push 0
push edx
call fcn.00417810
add esp, 0xc
test eax, eax
jne 0x420841
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
push dword [esi + 0x38]
push 0x20
push eax
call fcn.004b2260
push dword [ebp - 0x28]
push esi
lea eax, [ebp - 0x1d8]
push eax
call fcn.0042fa00
add esp, 0x18
test eax, eax
je 0x41fdec
cmp eax, 0x3f
jne 0x4207d0
test byte [edi + 0x16f], 8
jne 0x41fdec
mov dword [esi + 0x10], 0x3f
mov edx, dword [esi + 0x38]
test edx, edx
je 0x41fe08
mov eax, dword [ebp - 0x28]
cmp byte [eax], 0x20
jne 0x41fe1d
inc eax
mov dword [ebp - 0x28], eax
mov edx, dword [esi + 0x38]
dec edx
mov dword [esi + 0x38], edx
jne 0x41fdf3
movsx eax, word [esi + 0x40]
test eax, eax
jne 0x41fe1d
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 0x41fe64
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x34]
add eax, edx
cmp eax, 0x200
mov edx, dword [edi + 0xf8]
jge 0x41fe49
mov eax, 0x200
shr edx, 3
cmp eax, edx
jge 0x41fe52
mov eax, edx
push eax
push edi
call fcn.0042f000
add esp, 8
test eax, eax
jne 0x42094a
movzx eax, byte [esi + 0x50]
test al, 2
je 0x41fed8
cmp dword [esi + 0x38], 0
je 0x41feb5
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 0x4208b2
mov dword [esi + 0x38], eax
mov eax, dword [ebp - 0x28]
movsx eax, byte [eax]
cmp eax, 0x20
je 0x4208b2
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 0x41fe8d
jmp 0x4208b2
and eax, 0xfffffffd
mov byte [esi + 0x50], al
mov dword [esi + 0x38], 0
cmp dword [ebp - 0x24], 0
je 0x41fed3
push dword [ebp - 0x24]
call fcn.004178d0
add esp, 4
mov edx, dword [edi + 0x3c]
jmp 0x41fefc
push dword [edi + 0x3c]
push esi
lea eax, [ebp - 0x1d8]
push eax
call fcn.0042fa00
add esp, 0xc
test eax, eax
jne 0x4208bb
mov edx, dword [edi + 0x3c]
add edx, dword [esi + 0x38]
mov dword [edi + 0x3c], edx
mov eax, dword [edi + 0x4c]
cmp edx, eax
ja 0x41ff05
mov edx, eax
mov dword [edi + 0x4c], edx
jmp 0x41ee09
mov edx, dword [edi + 0x18]
test edx, edx
je 0x41ff64
test byte [edx + 0x44], 2
je 0x41ff3f
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x41ff32
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.00427cb0
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.00412aa0
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 0x41ee49
cmp ebx, 1
jg 0x41ee49
or eax, 0x40
jmp 0x41ee4c
cmp dword [ebp - 0x20], 0
jne 0x41ee3d
cmp ebx, 1
jg 0x41ee3d
or eax, 0x20
jmp 0x41ee49
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x41ffbf
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 0x41ffdc
mov ebx, dword [ebp - 0x1e8]
jmp 0x41ef56
mov eax, dword [edi + 0x18]
test eax, eax
je 0x420060
test byte [eax + 0x44], 2
je 0x420036
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 0x420024
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.00427cb0
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.00412aa0
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 0x4200a9
cmp edx, 0x2b
jne 0x42009b
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x16d]
and eax, 0xffffffbf
mov byte [edi + 0x16d], al
jmp 0x41efb9
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x16d]
jmp 0x42009b
push edi
mov eax, 0x2c
push eax
push eax
push 1
call fcn.00412aa0
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 0x42013b
test byte [eax + 0x44], 2
je 0x420111
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 0x4200ff
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.00427cb0
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.00412aa0
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 0x4201b1
test byte [edx + 0x44], 2
je 0x42018c
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x42017f
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.00427cb0
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.00412aa0
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 0x4203e4
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x4201ed
movzx eax, byte [eax + 0x1e]
test eax, eax
jne 0x4202d1
cmp dword [edi + 0x128], 0
jne 0x420205
cmp dword [ebp - 0x18], 0
je 0x420235
cmp dword [edi + 0x130], 0
je 0x420235
movzx eax, byte [edi + 0x171]
test eax, 0x80
mov dword [edi + 0x128], 0
je 0x420228
and eax, 0x7f
mov byte [edi + 0x171], al
jmp 0x420235
cmp dword [edi + 0x130], 0
jne 0x4202d1
movzx eax, byte [edi + 0x16d]
test al, 0x40
je 0x42024d
cmp byte [edi + 0x156], 1
je 0x420471
push edi
call fcn.00432160
add esp, 4
test eax, eax
je 0x4202b5
mov edx, dword [edi + 0x18]
test edx, edx
je 0x420423
test byte [edx + 0x44], 2
je 0x420290
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x420283
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.00427cb0
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 0x420349
push dword [esi + 4]
and eax, 0xfffffffd
mov byte [esi + 0x4f], al
call fcn.004178d0
add esp, 4
test eax, eax
je 0x420349
mov edx, dword [edi + 0x18]
test edx, edx
je 0x42043d
test byte [edx + 0x44], 2
je 0x420324
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x420317
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.00427cb0
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 0x4203b1
mov eax, dword [edi + 0x18]
test eax, eax
je 0x420457
test byte [eax + 0x44], 2
je 0x42038c
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 0x42037c
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.00427cb0
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.00422760
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 0x4203ff
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.0042d0b0
add esp, 0xc
cmp eax, 2
je 0x4203e9
cmp eax, 1
jne 0x41ee09
jmp 0x4201da
push edi
push eax
push eax
push 1
call fcn.00412aa0
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.00412aa0
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.00412aa0
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 0x42049b
cmp edx, 0x2b
jne 0x42048d
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x16d]
and eax, 0xffffffbf
mov byte [edi + 0x16d], al
jmp 0x42024d
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x16d]
jmp 0x42048d
push edi
mov eax, 0x69
push eax
push eax
push 1
call fcn.00412aa0
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 0x4201da
cmp ebx, 2
jge 0x4201da
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 0x42051a
cmp edx, 0x2b
jne 0x42050c
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x16d]
and eax, 0xffffffbf
mov byte [edi + 0x16d], al
jmp 0x41f361
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x16d]
jmp 0x42050c
push edi
mov eax, 0x2c
push eax
push eax
push 1
call fcn.00412aa0
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 0x4205ac
test byte [eax + 0x44], 2
je 0x420582
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 0x420570
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.00427cb0
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.00412aa0
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 0x420622
test byte [edx + 0x44], 2
je 0x4205fd
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4205f0
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.00427cb0
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.00412aa0
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 0x41f2f2
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 0x4201da
jmp 0x41f2f2
mov edx, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
shl edx, 3
cmp edx, 0x11
jge 0x42067f
mov edx, 0x11
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x41fd44
jmp 0x41fd73
mov edx, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
shl edx, 3
cmp edx, 0x11
jge 0x4206a6
mov edx, 0x11
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x41fd44
jmp 0x41f93d
mov eax, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
lea edx, [eax + eax*2]
cmp edx, 7
jge 0x4206cd
mov edx, 7
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x41fd44
jmp 0x41fd73
cmp dword [ebp - 0x3bc], 0x34
jg 0x41fa63
mov edx, eax
movzx eax, byte [esi + 0x50]
or eax, 2
movsx edx, word [edx*8 + 0x4d5518]
mov dword [ebp - 0x2c], eax
mov byte [esi + 0x50], al
movsx eax, word [esi + 0x40]
test eax, eax
mov dword [esi + 0x38], edx
jne 0x42071f
mov eax, dword [ebp - 0x3bc]
movzx eax, word [eax*8 + 0x4d551c]
mov word [esi + 0x40], ax
mov eax, dword [ebp - 0x3bc]
add ecx, 0xffffffd8
cmp ecx, 0x20
movzx eax, word [eax*8 + 0x4d551e]
mov word [esi + 0x42], ax
jb 0x41fd44
jmp 0x41fd73
mov eax, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
lea edx, [eax + eax*2]
cmp edx, 7
jge 0x420758
mov edx, 7
mov dword [esi + 0x38], edx
cmp ecx, 0x20
jb 0x41fd44
jmp 0x41f93d
cmp dword [ebp - 0x3b4], 0x34
jg 0x41fc38
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, word [eax*8 + 0x4d5518]
mov dword [ebp - 0x370], edx
mov dword [esi + 0x38], edx
movzx edx, word [eax*8 + 0x4d551c]
movzx eax, word [eax*8 + 0x4d551e]
mov word [esi + 0x40], dx
mov word [esi + 0x42], ax
mov edx, dword [ebp - 0x370]
jb 0x41fd44
jmp 0x41f93d
push edi
push eax
push eax
push 1
call fcn.00412aa0
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 0x420827
test byte [edx + 0x44], 2
je 0x420802
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4207f5
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.00427cb0
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.00412aa0
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 0x420898
test byte [edx + 0x44], 2
je 0x420873
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x420866
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.00427cb0
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.00412aa0
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 0x41feb5
cmp eax, 0x3f
jne 0x4208d9
test byte [edi + 0x16f], 8
jne 0x41fef3
mov dword [esi + 0x10], 0x3f
jmp 0x41fef3
mov edx, dword [edi + 0x18]
test edx, edx
je 0x420930
test byte [edx + 0x44], 2
je 0x42090b
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4208fe
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.00427cb0
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.00412aa0
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 0x4209b0
test byte [eax + 0x44], 2
je 0x420986
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 0x420974
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.00427cb0
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.00412aa0
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 0x420a26
test byte [edx + 0x44], 2
je 0x420a01
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4209f4
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.00427cb0
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.00412aa0
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 0x420a97
test byte [edx + 0x44], 2
je 0x420a72
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x420a65
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.00427cb0
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.00412aa0
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 0x41eea3
cmp ebx, 1
jg 0x41eea3
or eax, 0x40
jmp 0x41eea6
cmp dword [ebp - 0x20], 0
jne 0x41ee93
cmp ebx, 1
jg 0x41ee93
movzx eax, byte [esi + 0x4f]
or eax, 0x20
jmp 0x41eea3
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 0x420b12
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