Function at 0x4457d0
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 0x447858
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 0x4458b7
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 0x445906
test al, 0x20
je 0x445906
mov ecx, dword [ebp + 0xc]
movsx ecx, byte [ecx]
cmp ecx, 2
je 0x446c4f
and eax, 0xffffffdf
cmp ecx, 1
je 0x446c2e
and eax, 0xffffffbf
mov byte [esi + 0x9f], al
push edi
mov dword [ebp - 0x38], edx
call fcn.00462930
mov edx, dword [ebp - 0x38]
add esp, 4
test eax, eax
jne 0x446bbd
movzx eax, byte [esi + 0x9f]
test al, 0x10
je 0x4458a6
test al, 0x20
jne 0x447825
mov edx, dword [ebp - 4]
mov dword [esi + 0xc], edx
or eax, 0x20
mov byte [esi + 0x9f], al
jmp 0x445906
mov eax, dword [ebp + 0xc]
movsx edx, byte [eax]
cmp edx, 2
je 0x447803
movzx eax, byte [esi + 0x9f]
and eax, 0xffffffdf
cmp edx, 1
je 0x4477e2
and eax, 0xffffffbf
mov byte [esi + 0x9f], al
push edi
call fcn.00462930
add esp, 4
test eax, eax
jne 0x447771
movzx eax, byte [esi + 0x9f]
test al, 0x10
je 0x445906
test al, 0x20
jne 0x446c6a
movsx edx, byte [esi + 0x98]
add edx, 0xfffffffe
cmp edx, 0x1a
ja case.0x445919.3
jmp dword [edx*4 + 0x4abc00]
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 0x446cb0
cmp dword [ebp - 0x44], 0
jg 0x446c84
mov edx, dword [edi + 0x4c]
cmp eax, edx
mov dword [edi + 0x128], 0
ja 0x445962
mov eax, edx
mov dword [edi + 0x4c], eax
or byte [edi + 0x179], 0x80
jmp 0x445809
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x44598b
cmp byte [eax + 0x1e], 0
je 0x44598b
mov byte [eax + 0x1e], 0
mov dword [ebp - 0x48], 1
jmp 0x445992
mov dword [ebp - 0x48], 0
movzx eax, byte [edi + 0x175]
test al, 0x40
je 0x4459aa
cmp byte [edi + 0x15e], 1
je 0x446d75
push edi
call fcn.00468000
add esp, 4
test eax, eax
jne 0x446e50
add dword [edi + 0x98], 1
push 0
push edi
adc dword [edi + 0x9c], 0
and byte [edi + 0x177], 0xfb
call fcn.004693a0
add esp, 8
test eax, eax
jne 0x446dcb
movsx eax, byte [edi + 0x15c]
mov dword [ebp - 0x54], eax
lea eax, [eax - 1]
cmp eax, 7
ja case.default.0x4459f9
jmp dword [eax*4 + 0x4abc80]
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x445a0c
mov dword [edi + 0x3c], ecx
jmp 0x445a12
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 0x445b3c
mov eax, dword [edi + 0x18]
test eax, eax
je 0x446dac
test byte [eax + 0x44], 2
je 0x445a6b
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 0x445a59
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.0045adb0
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 0x445aa1
add ecx, 4
jmp 0x445aa7
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 0x445b3c
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x445acc
mov dword [edi + 0x3c], ecx
jmp 0x445ad2
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 0x445b05
test byte [edi + 0x172], 0x40
je 0x445b05
test byte [edi + 0x173], 8
je 0x445b05
cmp dword [ebp - 0x54], 1
je 0x445b0a
mov dword [edi + 0x44], eax
jmp 0x445b3c
mov eax, dword [ebp - 0x200]
lea eax, [ecx + eax - 2]
mov dword [edi + 0x44], eax
jmp 0x445b3c
push 0x472
push str.for_wseq_fmt.c
push 2
push 8
call fcn.00455f10
add esp, 0x10
movzx edx, byte [edi + 0x170]
mov ecx, dword [edi + 0x3c]
mov eax, dword [edi + 0x44]
test dl, 4
je 0x445b5c
test byte [edi + 0x172], 0x40
je 0x445b5c
test byte [edi + 0x173], 8
je 0x445b5c
cmp byte [edi + 0x15c], 1
je 0x445ba9
movsx edx, byte [edi + 0x15e]
cmp edx, 2
jne 0x445b84
movsx edx, byte [edi + 0x15c]
cmp edx, 7
je 0x445ba9
cmp edx, 6
je 0x445ba9
cmp edx, 8
je 0x445ba9
dec eax
mov dword [edi + 0x44], eax
jmp 0x445ba9
cmp edx, 1
jne 0x445ba9
movsx edx, byte [edi + 0x15c]
cmp edx, 7
je 0x445ba3
cmp edx, 6
je 0x445ba3
cmp edx, 8
je 0x445ba3
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.004a2ae0
add esp, 0xc
mov dword [edi + 0x128], 0
cmp dword [ebp - 0x48], 0
je 0x445809
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
jmp 0x445809
cmp ebx, 2
jge 0x445809
jmp 0x446ec1
test byte [edi + 0x170], 4
je 0x445c06
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
mov edx, dword [edi + 0x7c]
mov dword [edx + 0xc], edi
jmp 0x445809
or byte [edi + 0x175], 0x40
jmp 0x445809
mov edx, dword [ebp + 0xc]
movsx edx, byte [edx]
cmp edx, 1
je 0x4473a1
cmp edx, 2
je 0x447382
test byte [esi + 0x9e], 0x20
jne 0x445cd8
test byte [edi + 0x170], 2
je 0x445c6e
test eax, 0x80
je 0x445c6e
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.004575f0
add esp, 0x14
test eax, eax
jne 0x4471e5
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4471c6
test byte [eax + 0x44], 2
je 0x445cae
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 0x445c9c
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.0045adb0
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 0x445cf0
cmp byte [eax + 0x1e], 0
je 0x445cf0
mov byte [eax + 0x1e], 0
mov edx, 1
jmp 0x445cf2
xor edx, edx
cmp dword [edi + 0x128], 0
je 0x445d20
movzx eax, byte [edi + 0x179]
test eax, 0x80
mov dword [edi + 0x128], 0
jne 0x445d20
cmp dword [edi + 0x130], 0
jne 0x445ffc
movzx eax, byte [edi + 0x175]
test al, 0x40
mov dword [ebp - 0x1e4], eax
je 0x445d3e
cmp byte [edi + 0x15e], 1
je 0x44720e
push edi
mov dword [ebp - 0x1e0], edx
call fcn.00468000
mov edx, dword [ebp - 0x1e0]
add esp, 4
test eax, eax
jne 0x447311
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.004693a0
mov edx, dword [ebp - 0x1e0]
add esp, 8
test eax, eax
jne 0x44728c
movsx eax, byte [edi + 0x15c]
mov dword [ebp - 0x1e8], eax
lea eax, [eax - 1]
cmp eax, 7
ja case.default.0x445da8
jmp dword [eax*4 + 0x4abca0]
mov eax, dword [edi + 0x40]
test eax, eax
je 0x445dbb
mov dword [edi + 0x3c], eax
jmp 0x445dc1
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 0x445f38
mov eax, dword [edi + 0x18]
test eax, eax
je 0x447257
test byte [eax + 0x44], 2
je 0x445e26
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 0x445e14
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.0045adb0
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 0x445e5c
add eax, 4
jmp 0x445e62
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 0x445f38
mov eax, dword [edi + 0x40]
test eax, eax
je 0x445e96
mov dword [edi + 0x3c], eax
jmp 0x445e9c
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 0x445edd
test byte [edi + 0x172], 0x40
je 0x445edd
test byte [edi + 0x173], 8
je 0x445edd
cmp dword [ebp - 0x1e8], 1
je 0x445ee8
mov ecx, dword [ebp - 0x1f4]
mov dword [edi + 0x44], ecx
jmp 0x445f38
mov ecx, dword [ebp - 0x3d0]
lea ecx, [eax + ecx - 2]
mov dword [ebp - 0x1f4], ecx
mov dword [edi + 0x44], ecx
jmp 0x445f38
push 0x544
push str.for_wseq_fmt.c
push 2
push 8
mov dword [ebp - 0x1e0], edx
call fcn.00455f10
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 0x445f5c
test byte [edi + 0x172], 0x40
je 0x445f5c
test byte [edi + 0x173], 8
je 0x445f5c
cmp byte [edi + 0x15c], 1
je 0x445fc1
movsx ecx, byte [edi + 0x15e]
cmp ecx, 2
jne 0x445f90
movsx ecx, byte [edi + 0x15c]
cmp ecx, 7
je 0x445fc1
cmp ecx, 6
je 0x445fc1
cmp ecx, 8
je 0x445fc1
mov ecx, dword [ebp - 0x1f4]
dec ecx
mov dword [ebp - 0x1f4], ecx
mov dword [edi + 0x44], ecx
jmp 0x445fc1
cmp ecx, 1
jne 0x445fc1
movsx ecx, byte [edi + 0x15c]
cmp ecx, 7
je 0x445fbb
cmp ecx, 6
je 0x445fbb
cmp ecx, 8
je 0x445fbb
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.004a2ae0
mov edx, dword [ebp - 0x1e0]
add esp, 0xc
mov dword [edi + 0x130], 1
and byte [edi + 0x179], 0x7f
test edx, edx
je 0x446007
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.004572a0
add esp, 0xc
cmp eax, 1
jne 0x445809
jmp 0x447276
cmp ebx, 1
jle 0x446158
mov eax, dword [ebp - 0x380]
cmp eax, 7
je 0x446049
cmp eax, 8
jne 0x446126
cmp dword [ebp - 0x20], 0
je 0x446068
mov eax, dword [ebp - 0x1cc]
dec ebx
add dword [ebp - 0x1d8], eax
mov dword [ebp - 0x20], 0
jmp 0x44641d
cmp dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x20]
je 0x446076
mov eax, 1
mov edx, dword [ebp - 0x37c]
test edx, edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x3c], edx
jle 0x4460fe
mov eax, edx
mov edx, eax
shr edx, 0x1f
add edx, eax
xor eax, eax
sar edx, 1
test edx, edx
jbe 0x4473af
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 0x4460a0
mov edi, dword [ebp - 0x40]
lea edx, [ecx + ecx + 1]
lea ecx, [edx - 1]
cmp ecx, dword [ebp - 0x3c]
jae 0x446100
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 0x446100
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.004636e0
add esp, 0xc
jmp 0x446141
mov edx, dword [ebp - 0x20]
test edx, edx
mov eax, dword [ebp - 0x1cc]
je 0x446138
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 0x44641d
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.00457340
add esp, 0x10
test eax, eax
jne 0x447700
mov ecx, dword [ebp - 0x1d0]
cmp ecx, 2
je 0x447837
cmp ecx, 1
je 0x446ed0
mov eax, dword [ebp - 0x380]
cmp eax, 7
jl 0x44638b
cmp eax, 8
jg 0x44638b
mov eax, dword [ebp - 0x1cc]
test eax, eax
mov dword [ebp - 0x1fc], eax
je 0x4461d1
mov eax, dword [ebp - 0x1d4]
cdq
mov ebx, dword [ebp - 0x1fc]
idiv ebx
mov ebx, eax
jmp 0x4461e4
test byte [edi + 0x170], 2
je 0x44637d
mov ebx, dword [ebp - 0x1d4]
test ebx, ebx
je 0x44637f
lea eax, [ecx - 0x1c]
cmp eax, 0x10
jbe 0x446202
cmp ecx, 0x34
je 0x446202
mov dword [ebp - 0x1c], 0
jmp 0x44620d
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 0x446352
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
test edx, edx
jbe 0x4473c3
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 0x446240
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 0x4462d3
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 0x4473b9
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 0x4462f1
mov edi, dword [ebp - 0x40]
lea edx, [ecx + ecx + 1]
lea ecx, [edx - 1]
cmp ecx, dword [ebp - 0x384]
jae 0x446354
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 0x446354
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.004636e0
add esp, 0xc
jmp 0x44640c
xor ebx, ebx
mov dword [ebp - 0x18], 1
jmp 0x446423
cmp eax, 6
je 0x446395
cmp eax, 5
jne 0x4463ec
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 0x4463ca
mov eax, ebx
cdq
mov ebx, dword [ebp - 0x1dc]
idiv ebx
mov ebx, eax
test ecx, ecx
jne 0x4463d5
jmp 0x44641d
test ecx, ecx
jne 0x4463d3
mov ebx, 0
je 0x44641d
test ebx, ebx
jne 0x44640c
mov dword [edi + 0x128], 1
mov dword [ebp - 0x18], 1
jmp 0x446423
lea eax, [ecx - 0x1c]
cmp eax, 0x10
jbe 0x446400
cmp ecx, 0x34
je 0x446400
mov ebx, 1
jmp 0x44640c
mov dword [ebp - 0x20], 1
mov ebx, 2
mov dword [edi + 0x128], 0
or byte [edi + 0x179], 0x80
cmp dword [ebp - 0x18], 0
je 0x44643f
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x446436
mov dword [esi + 0xc], 2
jmp 0x445809
inc eax
mov dword [esi + 0xc], eax
jmp 0x445809
mov eax, dword [esi]
and byte [esi + 0x9f], 0xf7
movsx ecx, byte [esi + 0x98]
movzx edx, byte [eax + 0x176]
test edx, 0x80
je 0x446484
mov eax, dword [ecx*4 + 0x4b1ea0]
test eax, eax
je 0x446484
mov edx, dword [ebp - 0x1d0]
movsx eax, byte [eax + edx]
test eax, eax
je 0x446484
mov dword [ebp - 0x1d0], eax
movsx ecx, byte [esi + 0x98]
lea eax, [ecx - 0x13]
cmp eax, 0x20
ja case.default.0x446490
jmp dword [eax*4 + 0x4abcc0]
mov edx, dword [esi + 0x88]
test edx, edx
jne 0x4464e2
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 + 0x4b1d40]
cmp edx, 0xffffffff
mov dword [esi + 0x88], edx
je 0x4473cd
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4469d1
jmp 0x446a0f
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4469d1
movzx eax, byte [esi + 0xa0]
mov dword [ebp - 0x2c], eax
jmp 0x446a0f
mov eax, dword [ebp - 0x1d0]
movsx edx, word [eax*2 + 0x4b1d40]
cmp edx, 0xffffffff
mov dword [esi + 0x88], edx
je 0x4473f7
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4469d1
jmp 0x4464ee
mov edx, dword [esi + 0x88]
test edx, edx
jne 0x446572
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 + 0x4b210d]
cmp edx, 0xffffffff
mov dword [esi + 0x88], edx
je 0x447421
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4469d1
jmp 0x446a0f
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4469d1
jmp 0x4464ee
mov edx, dword [esi + 0x88]
test edx, edx
jne 0x4465c4
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 + 0x4b20fb]
mov dword [esi + 0x88], edx
jb 0x4469d1
jmp 0x446a0f
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4469d1
jmp 0x4464ee
mov edx, dword [esi + 0x88]
test edx, edx
jne 0x4466b5
or byte [esi + 0xa1], 4
mov eax, dword [ebp - 0x1d0]
lea edx, [eax - 0x19]
mov dword [ebp - 0x3d4], edx
cmp edx, 0x1b
ja 0x446665
movzx eax, byte [esi + 0xa0]
or eax, 2
movsx edx, word [edx*8 + 0x4b1dc0]
mov dword [ebp - 0x2c], eax
mov byte [esi + 0xa0], al
movsx eax, word [esi + 0x90]
test eax, eax
mov dword [esi + 0x88], edx
jne 0x44663f
mov eax, dword [ebp - 0x3d4]
movzx eax, word [eax*8 + 0x4b1dc4]
mov word [esi + 0x90], ax
mov eax, dword [ebp - 0x3d4]
add ecx, 0xffffffd8
cmp ecx, 0x20
movzx eax, word [eax*8 + 0x4b1dc6]
mov word [esi + 0x92], ax
jb 0x4469d1
jmp 0x446a0f
lea edx, [eax - 5]
cmp edx, 0xc
ja 0x4466a4
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 + 0x4b20fb]
mov dword [esi + 0x88], edx
jb 0x4469d1
jmp 0x446a0f
and eax, 0xfffffffe
cmp eax, 0x38
je 0x44744b
jmp 0x4468ff
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4469d1
jmp 0x4464ee
mov edx, dword [esi + 0x88]
test edx, edx
jne 0x44673b
or byte [esi + 0xa1], 4
mov eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x3cc], eax
lea eax, [eax - 5]
cmp eax, 0xc
ja 0x446713
or byte [esi + 0xa0], 2
mov edx, dword [ebp - 0x1d0]
movsx edx, byte [edx + 0x4b20fb]
mov dword [esi + 0x88], edx
mov eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x3cc], eax
jmp 0x446747
mov eax, dword [ebp - 0x3cc]
and eax, 0xfffffffe
cmp eax, 0x38
jne 0x446747
mov edx, dword [ebp - 0x1cc]
mov dword [esi + 0x88], edx
mov eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x3cc], eax
jmp 0x446747
mov eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x3cc], eax
cmp dword [ebp - 0x3cc], 0x19
jge case.0x446490.30
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4469d1
jmp 0x4464ee
mov edx, dword [esi + 0x88]
test edx, edx
jne 0x4467ac
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 + 0x4b1cfa]
add edx, eax
mov dword [esi + 0x88], edx
cmp ecx, 0x20
jb 0x4469d1
jmp 0x446a0f
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4469d1
jmp 0x4464ee
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4469d1
jmp 0x4469ff
mov eax, dword [ebp - 0x1d0]
movsx edx, byte [eax + 0x4b210d]
cmp edx, 0xffffffff
mov dword [esi + 0x88], edx
je 0x447468
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x4469d1
jmp 0x4464ee
mov eax, dword [ebp - 0x1d0]
add eax, 0xfffffffb
cmp eax, 0xc
ja 0x4468ff
add ecx, 0xffffffd8
mov edx, 2
mov dword [esi + 0x88], 2
cmp ecx, 0x20
jb 0x4469d1
jmp 0x4464ee
mov edx, dword [ebp - 0x1d0]
lea eax, [edx - 5]
cmp eax, 0xc
ja 0x4468ff
add ecx, 0xffffffd8
movsx edx, byte [edx + 0x4b20fb]
cmp ecx, 0x20
mov dword [esi + 0x88], edx
jb 0x4469d1
jmp 0x4464ee
or byte [esi + 0xa1], 4
mov eax, dword [ebp - 0x1d0]
lea edx, [eax - 0x19]
cmp edx, 0x1b
ja 0x4468bd
mov eax, edx
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, word [eax*8 + 0x4b1dc0]
mov dword [ebp - 0x1f8], edx
mov dword [esi + 0x88], edx
movzx edx, word [eax*8 + 0x4b1dc4]
movzx eax, word [eax*8 + 0x4b1dc6]
mov word [esi + 0x90], dx
mov word [esi + 0x92], ax
mov edx, dword [ebp - 0x1f8]
jb 0x4469d1
jmp 0x4464ee
lea edx, [eax - 5]
cmp edx, 0xc
ja 0x4468e3
add ecx, 0xffffffd8
movsx edx, byte [eax + 0x4b20fb]
cmp ecx, 0x20
mov dword [esi + 0x88], edx
jb 0x4469d1
jmp 0x4464ee
and eax, 0xfffffffe
cmp eax, 0x38
je 0x447492
jmp 0x4468ff
mov eax, dword [ebp - 0x1d0]
add eax, 0xffffffe7
cmp eax, 0x1b
jbe 0x44696b
add ecx, 0xffffffd8
mov eax, 0x3d
cmp ecx, 0x20
jb 0x4469d3
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4474af
test byte [edx + 0x44], 2
je 0x446946
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x446939
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.0045adb0
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 + 0x4b1dc0]
mov dword [ebp - 0x1f8], edx
mov dword [esi + 0x88], edx
movzx edx, word [eax*8 + 0x4b1dc4]
movzx eax, word [eax*8 + 0x4b1dc6]
mov word [esi + 0x90], dx
mov word [esi + 0x92], ax
mov edx, dword [ebp - 0x1f8]
jb 0x4469d1
jmp 0x4464ee
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x88], edx
jb 0x4469d1
jmp 0x4464ee
add ecx, 0xffffffd8
cmp ecx, 0x20
jae 0x4469ff
xor eax, eax
mov edx, 1
shl edx, cl
test dl, 0x25
je 0x4469f7
mov ecx, dword [esi + 0x90]
mov edx, dword [esi + 0x88]
cmp ecx, edx
jge 0x4469f1
mov ecx, edx
mov dword [esi + 0x88], ecx
test eax, eax
jne 0x446910
movzx eax, byte [esi + 0xa0]
mov edx, dword [esi + 0x88]
mov dword [ebp - 0x2c], eax
test byte [ebp - 0x2c], 2
je 0x446ae6
test edx, edx
jle 0x446a31
movsx eax, word [esi + 0x90]
cmp eax, edx
jle 0x446a31
lea edx, [eax + 1]
mov dword [esi + 0x88], edx
cmp edx, 0x40
ja 0x446a48
mov dword [ebp - 0x24], 0
lea eax, [ebp - 0x3c4]
mov dword [ebp - 0x28], eax
jmp 0x446a65
lea eax, [ebp - 0x28]
push eax
push 0
push edx
call fcn.00457180
add esp, 0xc
test eax, eax
jne 0x44753a
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
push dword [esi + 0x88]
push 0x20
push eax
call fcn.004a2ae0
push dword [ebp - 0x28]
push esi
lea eax, [ebp - 0x1d8]
push eax
call fcn.00464040
add esp, 0x18
test eax, eax
je 0x446aa3
cmp eax, 0x3f
jne 0x4474c9
test byte [edi + 0x177], 8
jne 0x446aa3
mov dword [esi + 0x10], 0x3f
mov edx, dword [esi + 0x88]
test edx, edx
je 0x446ac8
mov eax, dword [ebp - 0x28]
cmp byte [eax], 0x20
jne 0x446ae6
inc eax
mov dword [ebp - 0x28], eax
mov edx, dword [esi + 0x88]
dec edx
mov dword [esi + 0x88], edx
jne 0x446aad
movsx eax, word [esi + 0x90]
test eax, eax
jne 0x446ae6
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 0x447646
movzx eax, byte [esi + 0xa0]
test al, 2
je 0x446b85
cmp dword [esi + 0x88], 0
je 0x446b5c
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 0x4475ab
mov dword [esi + 0x88], eax
mov eax, dword [ebp - 0x28]
movsx eax, byte [eax]
cmp eax, 0x20
je 0x4475ab
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 0x446b2e
jmp 0x4475ab
and eax, 0xfffffffd
mov byte [esi + 0xa0], al
mov dword [esi + 0x88], 0
cmp dword [ebp - 0x24], 0
je 0x446b80
push dword [ebp - 0x24]
call fcn.00457240
add esp, 4
mov edx, dword [edi + 0x3c]
jmp 0x446bac
push dword [edi + 0x3c]
push esi
lea eax, [ebp - 0x1d8]
push eax
call fcn.00464040
add esp, 0xc
test eax, eax
jne 0x4475b7
mov edx, dword [edi + 0x3c]
add edx, dword [esi + 0x88]
mov dword [edi + 0x3c], edx
mov eax, dword [edi + 0x4c]
cmp edx, eax
ja 0x446bb5
mov edx, eax
mov dword [edi + 0x4c], edx
jmp 0x445809
mov edx, dword [edi + 0x18]
test edx, edx
je 0x446c14
test byte [edx + 0x44], 2
je 0x446bef
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x446be2
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.0045adb0
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.00453e60
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 0x445873
cmp ebx, 1
jg 0x445873
or eax, 0x40
mov byte [esi + 0x9f], al
jmp 0x44587c
cmp dword [ebp - 0x20], 0
jne 0x445867
cmp ebx, 1
jg 0x445867
or eax, 0x20
jmp 0x445873
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x446c75
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 0x446c8f
mov ebx, dword [ebp - 0x1ec]
jmp 0x44594f
mov edx, ecx
sub edx, dword [ebp - 0x4c]
cmp edx, 0x200
mov eax, dword [edi + 0xf8]
jge 0x446cc8
mov edx, 0x200
shr eax, 3
cmp edx, eax
jge 0x446cd1
mov edx, eax
push edx
push edi
call fcn.004634e0
add esp, 8
test eax, eax
jne 0x446cf0
mov edx, dword [esi + 0x88]
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x44], edx
jmp 0x445945
mov eax, dword [edi + 0x18]
test eax, eax
je 0x446d56
test byte [eax + 0x44], 2
je 0x446d2c
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 0x446d1a
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.0045adb0
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.00453e60
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 0x446d9f
cmp edx, 0x2b
jne 0x446d91
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x175]
and eax, 0xffffffbf
mov byte [edi + 0x175], al
jmp 0x4459aa
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x175]
jmp 0x446d91
push edi
mov eax, 0x2c
push eax
push eax
push 1
call fcn.00453e60
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 0x446e31
test byte [eax + 0x44], 2
je 0x446e07
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 0x446df5
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.0045adb0
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.00453e60
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 0x446ea7
test byte [edx + 0x44], 2
je 0x446e82
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x446e75
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.0045adb0
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.00453e60
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 0x447102
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x446ee1
cmp byte [eax + 0x1e], 0
jne 0x446fe9
cmp dword [edi + 0x134], 0
je 0x446ef8
mov dword [edi + 0x134], 0
xor edx, edx
jmp 0x446efd
mov edx, 1
cmp dword [edi + 0x128], 0
jne 0x446f15
cmp dword [ebp - 0x18], 0
je 0x446f45
cmp dword [edi + 0x130], 0
je 0x446f45
movzx eax, byte [edi + 0x179]
test eax, 0x80
mov dword [edi + 0x128], 0
je 0x446f38
and eax, 0x7f
mov byte [edi + 0x179], al
jmp 0x446f4d
cmp dword [edi + 0x130], 0
jne 0x446fe9
test edx, edx
je 0x446fe9
movzx eax, byte [edi + 0x175]
test al, 0x40
je 0x446f65
cmp byte [edi + 0x15e], 1
je 0x44718f
push edi
call fcn.00468000
add esp, 4
test eax, eax
je 0x446fcd
mov edx, dword [edi + 0x18]
test edx, edx
je 0x447141
test byte [edx + 0x44], 2
je 0x446fa8
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x446f9b
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.0045adb0
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 0x447067
push dword [esi + 4]
and eax, 0xfffffffd
mov byte [esi + 0x9f], al
call fcn.00457240
add esp, 4
test eax, eax
je 0x447067
mov edx, dword [edi + 0x18]
test edx, edx
je 0x44715b
test byte [edx + 0x44], 2
je 0x447042
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x447035
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.0045adb0
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 0x4470cf
mov eax, dword [edi + 0x18]
test eax, eax
je 0x447175
test byte [eax + 0x44], 2
je 0x4470aa
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 0x44709a
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.0045adb0
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.00457680
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 0x44711d
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.004572a0
add esp, 0xc
cmp eax, 2
je 0x447107
cmp eax, 1
jne 0x445809
jmp 0x446ed0
push edi
push eax
push eax
push 1
call fcn.00453e60
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.00453e60
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.00453e60
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 0x4471b9
cmp edx, 0x2b
jne 0x4471ab
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x175]
and eax, 0xffffffbf
mov byte [edi + 0x175], al
jmp 0x446f65
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x175]
jmp 0x4471ab
push edi
mov eax, 0x69
push eax
push eax
push 1
call fcn.00453e60
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 0x446ed0
cmp ebx, 2
jge 0x446ed0
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 0x447244
cmp eax, 0x2b
jne 0x447230
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 0x445d3e
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x175]
mov dword [ebp - 0x1e4], eax
jmp 0x447230
push edi
mov eax, 0x2c
push eax
push eax
push 1
call fcn.00453e60
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 0x446ed0
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4472f2
test byte [eax + 0x44], 2
je 0x4472c8
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 0x4472b6
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.0045adb0
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.00453e60
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 0x447368
test byte [edx + 0x44], 2
je 0x447343
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x447336
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.0045adb0
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.00453e60
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 0x445cd8
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 0x446ed0
jmp 0x445cd8
mov edx, 1
jmp 0x4460dc
mov edx, 1
jmp 0x44632d
mov edx, 1
jmp 0x44629b
mov edx, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
shl edx, 3
cmp edx, 0x11
jge 0x4473e3
mov edx, 0x11
mov dword [esi + 0x88], edx
cmp ecx, 0x20
jb 0x4469d1
jmp 0x446a0f
mov edx, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
shl edx, 3
cmp edx, 0x11
jge 0x44740d
mov edx, 0x11
mov dword [esi + 0x88], edx
cmp ecx, 0x20
jb 0x4469d1
jmp 0x4464ee
mov eax, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
lea edx, [eax + eax*2]
cmp edx, 7
jge 0x447437
mov edx, 7
mov dword [esi + 0x88], edx
cmp ecx, 0x20
jb 0x4469d1
jmp 0x446a0f
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x88], edx
jb 0x4469d1
jmp 0x4464ee
mov eax, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
lea edx, [eax + eax*2]
cmp edx, 7
jge 0x44747e
mov edx, 7
mov dword [esi + 0x88], edx
cmp ecx, 0x20
jb 0x4469d1
jmp 0x4464ee
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x88], edx
jb 0x4469d1
jmp 0x4464ee
push edi
push eax
push eax
push 1
call fcn.00453e60
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 0x447520
test byte [edx + 0x44], 2
je 0x4474fb
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4474ee
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.0045adb0
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.00453e60
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 0x447591
test byte [edx + 0x44], 2
je 0x44756c
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x44755f
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.0045adb0
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.00453e60
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 0x446b5c
cmp eax, 0x3f
jne 0x4475d5
test byte [edi + 0x177], 8
jne 0x446ba0
mov dword [esi + 0x10], 0x3f
jmp 0x446ba0
mov edx, dword [edi + 0x18]
test edx, edx
je 0x44762c
test byte [edx + 0x44], 2
je 0x447607
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4475fa
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.0045adb0
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.00453e60
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 0x447660
mov eax, 0x200
shr edx, 3
cmp eax, edx
jge 0x447669
mov eax, edx
push eax
push edi
call fcn.004634e0
add esp, 8
test eax, eax
je 0x446afc
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4476e1
test byte [eax + 0x44], 2
je 0x4476b7
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 0x4476a5
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.0045adb0
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.00453e60
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 0x447757
test byte [edx + 0x44], 2
je 0x447732
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x447725
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.0045adb0
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.00453e60
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 0x4477c8
test byte [edx + 0x44], 2
je 0x4477a3
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x447796
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.0045adb0
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.00453e60
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 0x4458d9
cmp ebx, 1
jg 0x4458d9
or eax, 0x40
mov byte [esi + 0x9f], al
jmp 0x4458e2
cmp dword [ebp - 0x20], 0
jne 0x4458c6
cmp ebx, 1
jg 0x4458c6
movzx eax, byte [esi + 0x9f]
or eax, 0x20
jmp 0x4458d9
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 0x44784c
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