Function at 0x4501ec
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebx
mov ebx, esp
and esp, 0xfffffff0
push ebp
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x168
mov dword [ebp - 0x138], edi
mov dword [ebp - 0x13c], esi
mov eax, dword [ebx + 8]
mov edi, dword [eax + 4]
xor edx, edx
mov dword [ebp - 0x154], eax
mov dword [ebp - 0xd4], edx
mov dword [ebp - 0x18], edi
mov ecx, 1
mov dword [ebp - 0x1c], ecx
xor esi, esi
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x2c], edx
xor ecx, ecx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0x48], ecx
movzx ecx, byte [edi + 0x15d]
mov edi, dword [ebp - 0x1c]
lea edx, [ebp - 0xb8]
lea eax, [ebp - 0x134]
push eax
and ecx, 0x10
push edx
lea eax, [ebx + 0xc]
shr ecx, 4
mov dword [ebp - 0x34], ecx
lea ecx, [ebx + 0x10]
push ecx
push eax
call fcn.0043a0e4
mov dword [ebp - 0x14], eax
add esp, 0x10
test eax, eax
jne 0x453269
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x38], eax
cmp eax, 2
je 0x453320
cmp eax, 1
je 0x453259
mov eax, dword [ebp - 0x18]
movzx ecx, byte [eax + 0x15d]
test cl, 0x20
je 0x45031b
movsx edx, byte [eax + 0x148]
test edx, edx
jne 0x45031b
mov eax, dword [ebp - 0xac]
cmp eax, 1
jle 0x45031b
mov eax, dword [ebp - 0x38]
cmp eax, 5
jl 0x4502f9
cmp eax, 0x11
jle 0x4502fe
cmp eax, 0x19
jl 0x4502f2
cmp eax, 0x1f
jle 0x4502fe
cmp eax, 0x32
jl 0x4502e6
cmp eax, 0x34
jle 0x4502fe
jmp 0x45031b
cmp eax, 0x28
jl 0x45031b
cmp eax, 0x30
jle 0x4502fe
jmp 0x45031b
cmp eax, 0x32
jge 0x4502fe
jmp 0x45031b
cmp eax, 0x19
jl 0x45031b
mov eax, 1
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x134]
cmp eax, 5
jne 0x450326
mov edx, 1
mov dword [ebp - 0x4c], edx
jmp 0x45032b
xor eax, eax
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x134]
xor edx, edx
mov dword [ebp - 0x4c], edx
mov edi, dword [ebp - 0x50]
test edx, edx
je 0x450337
mov edi, 0
cmp eax, 7
mov dword [ebp - 0x48], edi
jl 0x45049e
cmp eax, 8
jg 0x45049e
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0xa8], eax
test eax, eax
je 0x45036f
mov eax, dword [ebp - 0xb4]
cdq
mov edi, dword [ebp - 0xa8]
idiv edi
mov edi, eax
jmp 0x450371
xor edi, edi
test edi, edi
jne 0x45038d
mov eax, dword [ebp - 0xd4]
test eax, eax
jne 0x450754
mov esi, 1
jmp 0x450251
mov eax, dword [ebp - 0x38]
cmp eax, 0x34
je 0x45039f
cmp eax, 0x1c
jl 0x4503b5
cmp eax, 0x2c
jg 0x4503b5
mov eax, dword [ebp - 0xa8]
lea eax, [eax + eax]
mov edx, 1
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x2c], edx
jmp 0x4503c0
mov eax, dword [ebp - 0xa8]
xor edx, edx
mov dword [ebp - 0x40], edx
mov edx, dword [ebp - 0x130]
mov dword [ebp - 0x144], edx
test edx, edx
jle 0x4503f1
cmp eax, dword [ebp - 0x120]
jne 0x4503ff
mov eax, dword [ebp - 0x124]
cmp eax, dword [ebp - 0x128]
jg 0x4503ff
cmp eax, 1
je 0x4510bd
jmp 0x4503ff
mov eax, dword [ebp - 0x144]
test eax, eax
jle 0x4511b3
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0x144]
mov dword [ebp - 0xc], esi
xor edx, edx
xor eax, eax
mov esi, dword [ebp + eax - 0x124]
mov ecx, dword [ebp + eax - 0x120]
mov dword [ebp + edx*4 - 0x6c], esi
add eax, 0xc
mov dword [ebp + edx*4 - 0x88], ecx
mov dword [ebp + edx*4 - 0xa4], esi
add edx, 1
cmp edx, edi
jl 0x45040f
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x144]
test eax, eax
jle 0x4511b3
mov dword [ebp - 0xc], esi
mov esi, eax
xor eax, eax
xor edx, edx
mov ecx, dword [ebp + eax*4 - 0xa4]
sub ecx, dword [ebp + eax*4 - 0x6c]
imul ecx, dword [ebp + eax*4 - 0x88]
add eax, 1
add edx, ecx
cmp eax, esi
jl 0x450456
mov esi, dword [ebp - 0xc]
add edx, dword [ebp - 0x12c]
mov dword [ebp - 0xb8], edx
lea edx, [ebp - 0xa4]
lea eax, [ebp - 0x134]
push eax
push edx
push 0
call fcn.0043b430
add esp, 0xc
jmp 0x450621
cmp eax, 6
je 0x4504ac
cmp eax, 5
jne 0x4505ca
mov eax, dword [ebp - 0xac]
test eax, eax
je 0x4504c4
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0xa8], eax
jmp 0x4504cc
xor eax, eax
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x4504ed
mov eax, dword [ebp - 0xd4]
test eax, eax
jne 0x450754
mov edi, 1
mov esi, 1
jmp 0x450251
test cl, 0x10
je 0x4505ad
mov eax, edx
test eax, eax
jne 0x450580
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0xb8]
push eax
push edx
call fcn.0043af18
add esp, 8
test eax, eax
je 0x450580
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0xa8], eax
test eax, eax
je 0x45053a
mov eax, dword [ebp - 0xb4]
cdq
mov ecx, dword [ebp - 0xa8]
idiv ecx
mov edi, eax
jmp 0x45053c
xor edi, edi
mov eax, dword [ebp - 0x18]
movzx edx, byte [eax + 0x158]
test dl, 2
je 0x45062e
test edi, edi
jne 0x450621
mov edx, dword [ebp - 0xd4]
mov dword [eax + 0x118], 1
test edx, edx
jne 0x4511ba
movzx ecx, byte [eax + 0x15d]
mov esi, 1
jmp 0x450251
mov eax, dword [ebp - 0x18]
movzx edx, byte [eax + 0x158]
test dl, 2
je 0x45059e
mov edi, 1
xor eax, eax
mov dword [ebp - 0x34], eax
jmp 0x450621
mov edi, 1
xor eax, eax
mov dword [ebp - 0x34], eax
jmp 0x45062e
mov eax, dword [ebp - 0x18]
movzx edx, byte [eax + 0x158]
test dl, 2
je 0x4505c3
mov edi, 1
jmp 0x450621
mov edi, 1
jmp 0x45062e
mov eax, dword [ebp - 0x38]
cmp eax, 0x34
je 0x4505dc
cmp eax, 0x1c
jl 0x4505ef
cmp eax, 0x2c
jg 0x4505ef
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0xa8], eax
mov edi, 2
jmp 0x450621
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x45061c
mov eax, dword [ebp - 0xd4]
test eax, eax
jne 0x450754
mov edi, 1
mov esi, 1
jmp 0x450251
mov edi, 1
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x118], 0
mov dword [ebp - 0xc], esi
mov esi, dword [ebp - 0x28]
mov edx, 1
xor ecx, ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x144], ecx
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x3c], edx
lea ecx, [eax + 3]
mov dword [ebp - 0x50], ecx
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
test eax, eax
jne 0x4511ba
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x4511d2
cmp edi, 1
jle 0x45073f
mov eax, dword [ebp - 0x134]
cmp eax, 7
je 0x450695
cmp eax, 8
jne 0x45071e
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4506b2
mov eax, dword [ebp - 0xac]
add dword [ebp - 0xb8], eax
add edi, 0xffffffff
xor edx, edx
mov dword [ebp - 0x2c], edx
jmp 0x45065f
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x2c]
test eax, eax
je 0x4506c1
mov edx, 1
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x130]
test edx, edx
jle 0x4511cb
mov dword [ebp - 0x1c], edi
xor eax, eax
xor ecx, ecx
mov edi, dword [ebp + eax*4 - 0xa4]
sub edi, dword [ebp + eax*4 - 0x6c]
imul edi, dword [ebp + eax*4 - 0x88]
add eax, 1
add ecx, edi
cmp eax, edx
jl 0x4506d9
mov edi, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x12c]
mov dword [ebp - 0xb8], ecx
lea edx, [ebp - 0xa4]
lea eax, [ebp - 0x134]
push eax
push edx
push 0
call fcn.0043b430
add esp, 0xc
jmp 0x45072a
mov eax, dword [ebp - 0xac]
add dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x118], 0
add edi, 0xffffffff
jmp 0x45065f
mov eax, dword [ebp - 0x18]
movzx ecx, byte [eax + 0x15d]
mov dword [ebp - 0x28], esi
mov esi, dword [ebp - 0xc]
jmp 0x450251
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
cmp edx, 1
jne 0x450a43
mov eax, dword [edi + 0x118]
test eax, eax
je 0x450849
mov eax, dword [edi + 0x40]
mov edx, dword [edi + 0x3c]
mov dword [edi + 0x118], 0
test eax, eax
je 0x45078c
sub edx, eax
jmp 0x450791
mov eax, dword [edi + 0x38]
sub edx, eax
jne 0x450849
movzx eax, byte [edi + 0x15f]
test al, 1
je 0x450980
mov eax, edi
call fcn.00453bfc
test eax, eax
je 0x450964
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x450a56
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x4507f4
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x4507e1
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push eax
push eax
movzx esi, byte [edi + 0x15c]
mov ecx, esi
and ecx, 1
test esi, 2
mov edx, 2
jne 0x450814
mov edx, 0
test esi, 4
mov esi, 4
jne 0x450826
mov esi, 0
or ecx, edx
or ecx, esi
push ecx
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, dword [edi + 0x128]
cmp eax, 7
jne 0x450895
mov edx, dword [edi + 0x134]
test edx, edx
jl 0x450d2b
mov ecx, dword [edi + 0x3c]
neg edx
add edx, 0xffffff80
mov byte [edi + 0x14e], dl
mov byte [ecx], dl
mov esi, dword [edi + 0x3c]
movzx eax, byte [edi + 0x14e]
mov edx, dword [edi + 0x38]
add esi, 1
mov dword [edi + 0x3c], esi
sub esi, eax
sub esi, edx
add esi, 0xfffffffe
js 0x450a76
mov byte [edx + esi], al
movsx eax, byte [edi + 0x144]
cmp eax, 3
je 0x451071
movzx eax, byte [edi + 0x15f]
test al, 1
jne 0x4508c1
test al, 0x40
jne 0x451025
push edi
call fcn.00439a70
pop ecx
jmp 0x4508c8
mov eax, edi
call fcn.00453bfc
test eax, eax
je 0x450964
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x451031
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x45090f
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x4508fc
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push eax
push eax
movzx esi, byte [edi + 0x15c]
mov ecx, esi
and ecx, 1
test esi, 2
mov edx, 2
jne 0x45092f
mov edx, 0
test esi, 4
mov esi, 4
jne 0x450941
mov esi, 0
or ecx, edx
or ecx, esi
push ecx
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
add dword [edi + 0x90], 1
adc dword [edi + 0x94], 0
and byte [edi + 0x15f], 0xfb
and byte [edi + 0x160], 0xbf
push dword [edi + 0xec]
and byte [edi + 0x15c], 0xdc
and byte [edi + 0x15e], 0xf7
call fcn.0043247c
pop ecx
test eax, eax
je 0x450a36
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x451051
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x4509e1
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x4509ce
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push eax
push eax
movzx esi, byte [edi + 0x15c]
mov ecx, esi
and ecx, 1
test esi, 2
mov edx, 2
jne 0x450a01
mov edx, 0
test esi, 4
mov esi, 4
jne 0x450a13
mov esi, 0
or ecx, edx
or ecx, esi
push ecx
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov edx, dword [ebp - 0x154]
mov dword [edx + 4], 0
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push edi
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov dword [esp + 4], esi
mov eax, esi
cdq
mov eax, dword [edi + 0xd4]
mov dword [esp + 8], edx
mov edx, 1
call fcn.00453724
add eax, 1
add edx, 1
or eax, edx
jne 0x450b3b
mov edx, dword [edi + 0x18]
test edx, edx
je 0x450ce1
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x450ae7
mov eax, 0x26
mov dword [edx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x64]
test eax, eax
je 0x450acf
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov eax, 0x26
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
movzx edx, byte [edi + 0x15c]
mov eax, edx
and eax, 1
test dl, 2
mov ecx, 2
jne 0x450b02
mov ecx, 0
test dl, 4
mov esi, 4
mov edx, 0x26
push edx
jne 0x450b17
mov esi, 0
or eax, ecx
or eax, esi
push edx
push eax
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push 1
lea eax, [edi + 0x14e]
push eax
push edi
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
jne 0x450bf2
mov edx, dword [edi + 0x18]
test edx, edx
je 0x450d06
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x450b9e
mov eax, 0x26
mov dword [edx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x64]
test eax, eax
je 0x450b86
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov eax, 0x26
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
movzx edx, byte [edi + 0x15c]
mov eax, edx
and eax, 1
test dl, 2
mov ecx, 2
jne 0x450bb9
mov ecx, 0
test dl, 4
mov esi, 4
mov edx, 0x26
push edx
jne 0x450bce
mov esi, 0
or eax, ecx
or eax, esi
push edx
push eax
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
neg esi
add esi, 0xffffffff
mov dword [esp + 4], esi
mov eax, esi
cdq
mov eax, dword [edi + 0xd4]
mov dword [esp + 8], edx
mov edx, 1
call fcn.00453724
add eax, 1
add edx, 1
or eax, edx
jne 0x450895
mov edx, dword [edi + 0x18]
test edx, edx
je 0x450cbc
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x450c68
mov eax, 0x26
mov dword [edx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x64]
test eax, eax
je 0x450c50
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov eax, 0x26
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
movzx edx, byte [edi + 0x15c]
mov eax, edx
and eax, 1
test dl, 2
mov ecx, 2
jne 0x450c83
mov ecx, 0
test dl, 4
mov esi, 4
mov edx, 0x26
push edx
jne 0x450c98
mov esi, 0
or eax, ecx
or eax, esi
push edx
push eax
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push edi
mov eax, 0x26
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push edi
mov eax, 0x26
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push edi
mov eax, 0x26
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov edx, dword [edi + 0x44]
mov eax, dword [edi + 0x3c]
sub edx, eax
cmp edx, 1
jg 0x450f69
push edi
call fcn.00439a70
pop ecx
test eax, eax
je 0x450ddf
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x450fac
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x450d8a
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x450d77
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push eax
push eax
movzx esi, byte [edi + 0x15c]
mov ecx, esi
and ecx, 1
test esi, 2
mov edx, 2
jne 0x450daa
mov edx, 0
test esi, 4
mov esi, 4
jne 0x450dbc
mov esi, 0
or ecx, edx
or ecx, esi
push ecx
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
and byte [edi + 0x160], 0xbf
push 0
push edi
call fcn.00438080
add esp, 8
test eax, eax
je 0x450e95
mov edx, dword [edi + 0x18]
test edx, edx
je 0x450fcc
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x450e41
mov eax, 0x26
mov dword [edx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x64]
test eax, eax
je 0x450e29
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov eax, 0x26
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
movzx edx, byte [edi + 0x15c]
mov eax, edx
and eax, 1
test dl, 2
mov ecx, 2
jne 0x450e5c
mov ecx, 0
test dl, 4
mov esi, 4
mov edx, 0x26
push edx
jne 0x450e71
mov esi, 0
or eax, ecx
or eax, esi
push edx
push eax
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
movsx edx, byte [edi + 0x144]
lea eax, [edx - 1]
cmp eax, 7
ja case.default.0x450eaf
mov eax, dword [edx*4 + 0x4bb878]
jmp eax
mov eax, dword [edi + 0x40]
test eax, eax
je 0x450ebd
mov dword [edi + 0x3c], eax
jmp 0x450ec3
mov eax, dword [edi + 0x38]
mov dword [edi + 0x3c], eax
mov edx, dword [edi + 0xe4]
lea ecx, [eax + edx - 1]
mov dword [edi + 0x44], ecx
jmp 0x450f69
mov edx, dword [edi + 0x40]
mov eax, 1
mov word [ebp - 0x158], ax
test edx, edx
je 0x450ff1
mov eax, 1
mov byte [edx + 2], al
mov edx, dword [edi + 0x40]
mov byte [edx + 3], 0
mov eax, dword [edi + 0x40]
add eax, 4
mov dword [edi + 0x3c], eax
mov edx, eax
add edx, dword [edi + 0xe4]
mov dword [edi + 0x44], edx
jmp 0x450f69
mov eax, dword [edi + 0x40]
test eax, eax
je 0x451017
add eax, 4
mov dword [edi + 0x3c], eax
mov edx, dword [edi + 0xe4]
lea ecx, [eax + edx - 8]
mov dword [edi + 0x44], ecx
jmp 0x450f69
mov eax, dword [edi + 0x40]
test eax, eax
je 0x450f3d
mov dword [edi + 0x3c], eax
jmp 0x450f43
mov eax, dword [edi + 0x38]
mov dword [edi + 0x3c], eax
mov edx, eax
add edx, dword [edi + 0xe4]
mov dword [edi + 0x44], edx
jmp 0x450f69
push 0xab3
push str.for_wseq.c
push 2
push 8
call fcn.00434a44
add esp, 0x10
mov eax, dword [edi + 0x3c]
mov byte [edi + 0x14e], 0x81
mov byte [eax], 0x81
mov ecx, dword [edi + 0x3c]
movzx edx, byte [edi + 0x14e]
mov esi, dword [edi + 0x44]
add ecx, 1
mov dword [edi + 0x3c], ecx
xor eax, eax
cmp edx, 0x81
sete al
sub esi, ecx
sub edx, eax
mov dword [edi + 0x134], edx
cmp esi, edx
jb 0x450fa1
mov esi, edx
mov dword [edi + 0x138], esi
jmp 0x450865
push edi
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push edi
mov eax, 0x26
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
movzx edx, byte [ebp - 0x157]
mov esi, dword [edi + 0x38]
mov eax, 1
mov byte [esi + 2], al
mov ecx, dword [edi + 0x38]
mov byte [ecx + 3], dl
mov eax, dword [edi + 0x38]
add eax, 4
mov dword [edi + 0x3c], eax
jmp 0x450f04
mov eax, dword [edi + 0x38]
add eax, 4
mov dword [edi + 0x3c], eax
jmp 0x450f22
mov eax, edi
call fcn.00453770
jmp 0x4508c8
push edi
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push edi
push eax
push eax
push 0
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x451099
movzx eax, byte [ecx + 2]
movzx edx, byte [ecx + 3]
shl edx, 8
or eax, edx
or eax, 2
mov byte [ecx + 2], al
mov ecx, dword [edi + 0x40]
shr eax, 8
mov byte [ecx + 3], al
jmp 0x4508a5
mov ecx, dword [edi + 0x38]
movzx eax, byte [ecx + 2]
movzx edx, byte [ecx + 3]
shl edx, 8
or eax, edx
or eax, 2
mov byte [ecx + 2], al
mov esi, dword [edi + 0x38]
shr eax, 8
mov byte [esi + 3], al
jmp 0x4508a5
mov eax, edx
cmp eax, 1
jg 0x45114f
test cl, 0x10
jne 0x4510db
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0xa8], eax
jmp 0x451128
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0xb8]
push eax
push edx
call fcn.0043af18
add esp, 8
test eax, eax
jne 0x451105
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0xa8], eax
xor edx, edx
mov dword [ebp - 0x34], edx
jmp 0x451128
mov eax, dword [ebp - 0x50]
test eax, eax
je 0x45113e
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0xa8], eax
mov edx, 1
xor ecx, ecx
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0xb8], eax
mov edi, 1
jmp 0x450621
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0x144], eax
jmp 0x4503f1
mov dword [ebp - 0x20], ecx
mov ecx, eax
mov dword [ebp - 0xc], esi
mov edx, 1
mov eax, 0xc
mov esi, dword [ebp + eax - 0x124]
cmp esi, 1
je 0x451175
mov esi, dword [ebp - 0xc]
jmp 0x4503f1
cmp esi, dword [ebp + eax - 0x128]
jg 0x45116d
mov esi, dword [ebp + eax - 0x134]
imul esi, dword [ebp + eax - 0x12c]
cmp esi, dword [ebp + eax - 0x120]
je 0x45119e
mov esi, dword [ebp - 0xc]
jmp 0x4503f1
add eax, 0xc
add edx, 1
cmp edx, ecx
jl 0x451161
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0xc]
jmp 0x4510c8
xor edx, edx
jmp 0x450475
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0xb0]
jmp 0x45075d
xor ecx, ecx
jmp 0x4506f8
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x30], eax
test ecx, ecx
mov dword [ebp - 0x24], edx
je 0x451418
and eax, dword [ebp - 0x50]
test al, 3
jne 0x451399
mov eax, dword [ebp - 0xa8]
cmp eax, 4
je 0x451368
cmp eax, 8
jne 0x451273
mov dword [ebp - 0x28], esi
mov esi, dword [ebp - 0x30]
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, edx
shr eax, 0x18
mov esi, edx
and esi, 0xff0000
shr esi, 8
or eax, esi
mov esi, edx
and esi, 0xff00
shl esi, 8
or eax, esi
mov esi, dword [ebp - 0x28]
shl edx, 0x18
or eax, edx
mov dword [ebp - 0xc8], eax
mov edx, ecx
shr edx, 0x18
mov eax, ecx
and eax, 0xff0000
shr eax, 8
or edx, eax
mov eax, ecx
shl ecx, 0x18
and eax, 0xff00
shl eax, 8
or edx, eax
or edx, ecx
mov dword [ebp - 0xc4], edx
jmp 0x45140d
cmp eax, 0x10
jne 0x451349
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x1c], edi
mov edi, dword [eax]
mov dword [ebp - 0x28], esi
mov esi, dword [eax + 4]
mov dword [ebp - 0x148], edi
mov eax, edx
shr eax, 0x18
mov edi, edx
and edi, 0xff0000
shr edi, 8
or eax, edi
mov edi, edx
shl edx, 0x18
and edi, 0xff00
shl edi, 8
or eax, edi
or eax, edx
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0xc8], eax
mov edx, ecx
shr edx, 0x18
mov eax, ecx
and eax, 0xff0000
shr eax, 8
or edx, eax
mov eax, ecx
shl ecx, 0x18
and eax, 0xff00
shl eax, 8
or edx, eax
or edx, ecx
mov eax, esi
mov dword [ebp - 0xc4], edx
and eax, 0xff0000
mov edx, esi
shr edx, 0x18
shr eax, 8
or edx, eax
mov eax, esi
and eax, 0xff00
shl eax, 8
or edx, eax
shl esi, 0x18
or edx, esi
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0xc0], edx
mov edx, dword [ebp - 0x148]
mov ecx, edx
shr ecx, 0x18
mov eax, edx
and eax, 0xff0000
shr eax, 8
or ecx, eax
mov eax, edx
shl edx, 0x18
and eax, 0xff00
shl eax, 8
or ecx, eax
or ecx, edx
mov dword [ebp - 0xbc], ecx
jmp 0x45140d
mov eax, dword [ebp - 0x30]
movzx edx, word [eax]
mov ecx, edx
shr ecx, 8
movzx edx, dl
shl edx, 8
or ecx, edx
mov word [ebp - 0xc8], cx
jmp 0x45140d
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx]
mov eax, edx
shr eax, 0x18
mov ecx, edx
and ecx, 0xff0000
shr ecx, 8
or eax, ecx
mov ecx, edx
shl edx, 0x18
and ecx, 0xff00
shl ecx, 8
or eax, ecx
or eax, edx
mov dword [ebp - 0xc8], eax
jmp 0x45140d
mov eax, dword [ebp - 0xa8]
cmp eax, 1
je 0x451cdd
mov eax, dword [ebp - 0x44]
test eax, eax
jle 0x45140d
mov edx, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x1c], edi
xor eax, eax
lea ecx, [ecx + edx]
mov dword [ebp - 0x10], ecx
lea ecx, [ebp - 0xc8]
lea edx, [edx + ecx]
mov dword [ebp - 0x20], edx
mov edi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x10]
movzx ecx, byte [eax + edi]
lea edi, [ebp - 0xc8]
sub edx, eax
movzx esi, byte [edx - 1]
xor esi, ecx
xor ecx, esi
mov byte [edi + eax], cl
movzx edx, byte [edx - 1]
mov ecx, dword [ebp - 0x20]
xor edx, esi
sub ecx, eax
mov byte [ecx - 1], dl
add eax, 1
mov edx, dword [ebp - 0x44]
cmp eax, edx
jl 0x4513d2
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x1c]
lea eax, [ebp - 0xc8]
mov dword [ebp - 0x30], eax
jmp 0x451469
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x451469
mov eax, dword [ebp - 0xb0]
cmp eax, 0x38
je 0x451469
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0xb8]
lea edx, [ebp - 0xc8]
push edx
mov edx, dword [ebp - 0xa8]
push ecx
push edx
push eax
call fcn.0043afb4
mov dword [ebp - 0x14], eax
add esp, 0x10
mov edx, eax
lea eax, [ebp - 0xc8]
mov dword [ebp - 0x30], eax
test edx, edx
je 0x451469
push 0
push 0x5f
call fcn.00434a44
add esp, 8
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + 0x15f]
test al, 0x20
je 0x45148c
cmp edi, 1
je 0x451cf0
mov edx, dword [ebp - 0x18]
and eax, 0xffffffdf
mov byte [edx + 0x15f], al
test al, 0x40
jne 0x450678
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x128]
cmp edx, 7
je 0x451917
mov ecx, eax
mov eax, dword [ecx + 0x44]
mov ecx, dword [ecx + 0x3c]
mov dword [ebp - 0x28], esi
mov esi, dword [ebp - 0xa8]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], ecx
lea ecx, [esi + ecx]
mov esi, dword [ebp - 0x28]
cmp eax, ecx
jae 0x4514f6
mov eax, dword [ebp - 0x18]
movsx eax, byte [eax + 0x144]
cmp eax, 5
je 0x453143
cmp edx, 0xb
jne 0x4514f1
cmp eax, 4
je 0x453127
cmp eax, 5
je 0x453127
mov esi, 1
test esi, esi
je 0x453117
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0x18]
movsx esi, byte [edi + 0x144]
cmp esi, 3
je 0x452db7
mov edx, dword [ebp - 0x24]
mov eax, dword [edi + 0xe4]
mov dword [ebp - 0x28], eax
cmp edx, 0x200
jge 0x451530
mov edx, 0x200
shr eax, 3
cmp eax, edx
jge 0x451539
mov eax, edx
mov edx, dword [edi + 0x128]
cmp edx, 0xb
mov dword [ebp - 0x14], edx
jne 0x451563
cmp esi, 5
je 0x451551
cmp esi, 4
jne 0x451563
mov edx, dword [edi + 0x38]
sub edx, dword [ebp - 0x20]
add edx, 0x20000
cmp eax, edx
jl 0x451563
mov eax, edx
movzx edx, byte [edi + 0x15f]
add eax, 0xf
and eax, 0xfffffff0
test dl, 1
je 0x45158f
mov edx, dword [ebp - 0x14]
cmp edx, 0xb
jne 0x45173c
cmp esi, 5
je 0x45158f
cmp esi, 4
jne 0x45173c
push eax
push edi
mov edx, dword [edi + 0xdc]
mov ecx, dword [edi + 0xe8]
mov esi, dword [edi + 0x40]
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x20], esi
call fcn.0043b4a8
add esp, 8
test eax, eax
je 0x451737
mov eax, dword [edi + 0x128]
cmp eax, 0xb
jne 0x451679
movsx eax, byte [edi + 0x144]
cmp eax, 5
je 0x4515dd
cmp eax, 4
jne 0x451679
mov edx, dword [edi + 0x18]
test edx, edx
je 0x451da5
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x451625
mov eax, 0x42
mov dword [edx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x64]
test eax, eax
je 0x45160d
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov eax, 0x42
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
movzx edx, byte [edi + 0x15c]
mov eax, edx
and eax, 1
test dl, 2
mov ecx, 2
jne 0x451640
mov ecx, 0
test dl, 4
mov esi, 4
mov edx, 0x42
push edx
jne 0x451655
mov esi, 0
or eax, ecx
or eax, esi
push edx
push eax
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
movzx eax, byte [edi + 0x15b]
test eax, 0x80
je 0x451f80
movsx eax, byte [edi + 0x144]
cmp eax, 1
je 0x451f80
mov esi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x20]
mov dword [edi + 0xdc], esi
mov esi, dword [edi + 0x3c]
sub esi, dword [edi + 0x38]
or byte [edi + 0x15f], 1
mov dword [edi + 0xe4], edx
mov dword [edi + 0xe8], eax
mov eax, dword [ebp - 0x24]
mov dword [edi + 0x40], ecx
lea edx, [eax + esi]
mov dword [edi + 0x108], edx
mov eax, dword [ebx + 0xc]
movsx eax, byte [eax]
cmp eax, 1
je 0x451f61
mov eax, dword [edi + 0xd4]
call fcn.00443314
mov dword [edi + 0x100], eax
mov dword [edi + 0x104], edx
push esi
push dword [edi + 0x38]
push edi
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
je 0x451e94
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x30]
push eax
push edx
push edi
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
je 0x451e7e
xor eax, eax
test eax, eax
jne 0x451dca
jmp 0x451785
mov ecx, dword [edi + 0x3c]
jmp 0x451790
mov eax, dword [ebp - 0x24]
mov esi, dword [edi + 0x38]
sub ecx, esi
push ecx
lea edx, [eax + ecx]
add dword [edi + 0x108], edx
push esi
push edi
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
je 0x452cea
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x30]
push eax
push edx
push edi
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
je 0x452cd4
xor eax, eax
test eax, eax
jne 0x452c20
mov ecx, dword [edi + 0x38]
mov dword [edi + 0x3c], ecx
xor edx, edx
mov dword [ebp - 0x24], edx
mov esi, dword [ebp - 0x24]
mov edx, dword [edi + 0x44]
mov dword [ebp - 0x20], edx
lea esi, [ecx + esi]
cmp edx, esi
jb 0x452be3
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0x1c]
xor esi, esi
mov eax, dword [ebp - 0xa8]
cmp eax, 8
jne 0x451819
mov eax, dword [ebp - 0x10]
test al, 7
jne 0x4517e3
mov eax, dword [ebp - 0xb8]
test al, 7
jne 0x4517e3
xor eax, eax
mov dword [ebp - 0x3c], eax
mov ecx, 1
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x38], ecx
jmp 0x451852
mov eax, dword [ebp - 0x10]
test al, 3
jne 0x451809
mov eax, dword [ebp - 0xb8]
test al, 3
jne 0x451809
xor eax, eax
mov dword [ebp - 0x3c], eax
mov ecx, 1
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x144], ecx
jmp 0x451852
xor eax, eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x144], eax
jmp 0x451852
cmp eax, 4
jne 0x451844
mov eax, dword [ebp - 0x10]
test al, 3
jne 0x451809
mov eax, dword [ebp - 0xb8]
test al, 3
jne 0x451809
xor eax, eax
mov dword [ebp - 0x3c], eax
mov ecx, 1
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x144], ecx
jmp 0x451852
xor eax, eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x128]
cmp edx, 0xb
jne 0x451893
movsx eax, byte [eax + 0x144]
cmp eax, 5
je 0x451871
cmp eax, 4
jne 0x451893
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
mov dword [edx + 0x138], eax
test ecx, ecx
jg 0x452041
jmp 0x450678
mov eax, dword [ebp - 0x24]
cmp eax, 4
jne 0x4518be
mov eax, dword [ebp - 0x144]
test eax, eax
je 0x452957
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x10]
mov edx, dword [eax]
mov eax, dword [ebp - 0x18]
mov dword [ecx], edx
mov eax, dword [eax + 0x3c]
mov dword [ebp - 0x10], eax
jmp 0x451906
cmp eax, 8
jne 0x4518e9
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x452957
mov edx, dword [ebp - 0x30]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
mov eax, dword [ebp - 0x18]
mov dword [edx + 4], ecx
mov eax, dword [eax + 0x3c]
mov dword [ebp - 0x10], eax
jmp 0x451906
cmp eax, 1
jne 0x452957
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x10]
movzx eax, byte [edx]
mov byte [ecx], al
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x3c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x3c], eax
jmp 0x450678
mov edx, dword [eax + 0x128]
cmp edx, 7
jne 0x450678
mov edx, dword [eax + 0x44]
mov eax, dword [eax + 0x3c]
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0x18]
mov ecx, edx
sub ecx, eax
cmp ecx, 1
jle 0x451949
mov ecx, dword [edi + 0x134]
jmp 0x451a64
push edi
call fcn.00439a70
mov dword [ebp - 0x14], eax
add esp, 4
test eax, eax
jne 0x451c29
and byte [edi + 0x160], 0xbf
push 0
push edi
call fcn.00438080
add esp, 8
test eax, eax
jne 0x451b68
movsx edx, byte [edi + 0x144]
lea eax, [edx - 1]
cmp eax, 7
ja case.default.0x451991
mov eax, dword [edx*4 + 0x4bb858]
jmp eax
mov eax, dword [edi + 0x40]
test eax, eax
je 0x45199f
mov dword [edi + 0x3c], eax
jmp 0x4519a5
mov eax, dword [edi + 0x38]
mov dword [edi + 0x3c], eax
mov edx, dword [edi + 0xe4]
lea edx, [eax + edx - 1]
mov dword [edi + 0x44], edx
jmp 0x451a4e
mov edx, dword [edi + 0x40]
mov eax, 1
mov word [ebp - 0x140], ax
test edx, edx
je 0x451b26
mov eax, 1
mov byte [edx + 2], al
mov edx, dword [edi + 0x40]
mov byte [edx + 3], 0
mov eax, dword [edi + 0x40]
add eax, 4
mov dword [edi + 0x3c], eax
mov edx, eax
add edx, dword [edi + 0xe4]
mov dword [edi + 0x44], edx
jmp 0x451a4e
mov eax, dword [edi + 0x40]
test eax, eax
je 0x451b4c
add eax, 4
mov dword [edi + 0x3c], eax
mov edx, dword [edi + 0xe4]
lea edx, [eax + edx - 8]
mov dword [edi + 0x44], edx
jmp 0x451a4e
mov eax, dword [edi + 0x40]
test eax, eax
je 0x451a1f
mov dword [edi + 0x3c], eax
jmp 0x451a25
mov eax, dword [edi + 0x38]
mov dword [edi + 0x3c], eax
mov edx, eax
add edx, dword [edi + 0xe4]
mov dword [edi + 0x44], edx
jmp 0x451a4e
push 0x9bf
push str.for_wseq.c
push 2
push 8
call fcn.00434a44
add esp, 0x10
mov edx, dword [edi + 0x44]
mov eax, dword [edi + 0x3c]
mov ecx, dword [edi + 0x134]
mov esi, edx
sub esi, eax
cmp esi, ecx
jb 0x451a5e
mov esi, ecx
mov dword [edi + 0x138], esi
test ecx, ecx
jge 0x451aa8
mov byte [edi + 0x14e], 0x81
mov byte [eax], 0x81
mov eax, dword [edi + 0x3c]
movzx ecx, byte [edi + 0x14e]
add eax, 1
mov dword [edi + 0x3c], eax
xor edx, edx
cmp ecx, 0x81
sete dl
sub ecx, edx
mov edx, dword [edi + 0x44]
mov dword [edi + 0x134], ecx
mov esi, edx
sub esi, eax
cmp esi, ecx
jb 0x451aa2
mov esi, ecx
mov dword [edi + 0x138], esi
mov esi, dword [ebp - 0x24]
test esi, esi
je 0x451b5a
test ecx, ecx
jne 0x451adb
movzx edx, byte [edi + 0x14e]
mov dword [edi + 0x134], 0xffffffff
mov byte [eax], dl
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + 0x44]
add eax, 1
mov dword [edi + 0x3c], eax
jmp 0x451935
mov ecx, esi
mov esi, dword [edi + 0x138]
cmp esi, ecx
jb 0x451ae9
mov esi, ecx
test esi, esi
jbe 0x451935
mov edx, dword [ebp - 0x30]
push esi
push edx
push eax
call fcn.004a3b10
add esp, 0xc
mov eax, dword [ebp - 0x24]
mov edx, dword [edi + 0x44]
add dword [ebp - 0x30], esi
sub eax, esi
sub dword [edi + 0x138], esi
mov dword [ebp - 0x24], eax
mov eax, dword [edi + 0x3c]
add eax, esi
sub dword [edi + 0x134], esi
mov dword [edi + 0x3c], eax
jmp 0x451935
movzx edx, byte [ebp - 0x13f]
mov esi, dword [edi + 0x38]
mov eax, 1
mov byte [esi + 2], al
mov ecx, dword [edi + 0x38]
mov byte [ecx + 3], dl
mov eax, dword [edi + 0x38]
add eax, 4
mov dword [edi + 0x3c], eax
jmp 0x4519e6
mov eax, dword [edi + 0x38]
add eax, 4
mov dword [edi + 0x3c], eax
jmp 0x451a04
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0x1c]
jmp 0x450678
mov edx, dword [edi + 0x18]
test edx, edx
je 0x451c04
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x451bb0
mov eax, 0x26
mov dword [edx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x64]
test eax, eax
je 0x451b98
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov eax, 0x26
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
movzx edx, byte [edi + 0x15c]
mov eax, edx
and eax, 1
test dl, 2
mov ecx, 2
jne 0x451bcb
mov ecx, 0
test dl, 4
mov esi, 4
mov edx, 0x26
push edx
jne 0x451be0
mov esi, 0
or eax, ecx
or eax, esi
push edx
push eax
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push edi
mov eax, 0x26
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x451cbd
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x451c68
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x451c55
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push eax
push eax
movzx esi, byte [edi + 0x15c]
mov ecx, esi
and ecx, 1
test esi, 2
mov edx, 2
jne 0x451c88
mov edx, 0
test esi, 4
mov esi, 4
jne 0x451c9a
mov esi, 0
or ecx, edx
or ecx, esi
push ecx
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push edi
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov edx, dword [ebp - 0x30]
lea ecx, [ebp - 0xc8]
movzx eax, byte [edx]
mov byte [ecx], al
jmp 0x45140d
mov edx, dword [ebx + 0xc]
movsx ecx, byte [edx]
cmp ecx, 1
jne 0x451480
mov edx, dword [ebp - 0x18]
movsx ecx, byte [edx + 0x144]
and eax, 0xffffffdf
cmp ecx, 1
je 0x451d1c
mov byte [edx + 0x15f], al
jmp 0x45148c
movzx ecx, byte [edx + 0x15b]
mov dword [ebp - 0x10], ecx
test cl, 8
je 0x451d4f
movzx ecx, byte [edx + 0x158]
test cl, 1
je 0x451d43
movsx ecx, byte [edx + 0x145]
cmp ecx, 2
je 0x451d11
movzx ecx, byte [edx + 0x161]
test cl, 0x40
jne 0x451d11
mov edx, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0x18]
cmp edx, dword [ecx + 0xe4]
jne 0x451d73
add edx, dword [ecx + 0x3c]
cmp edx, dword [ecx + 0x44]
jbe 0x451d80
mov edx, dword [ebp - 0x10]
test edx, 0x80
jne 0x451d73
mov edx, ecx
mov byte [edx + 0x15f], al
jmp 0x45148c
mov edx, ecx
mov ecx, dword [ebp - 0x30]
mov dword [edx + 0x80], ecx
mov ecx, dword [ebp - 0xa8]
mov dword [edx + 0x124], ecx
or eax, 0x40
mov byte [edx + 0x15f], al
jmp 0x45148c
push edi
mov eax, 0x42
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x451e5e
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x451e09
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x451df6
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push eax
push eax
movzx esi, byte [edi + 0x15c]
mov ecx, esi
and ecx, 1
test esi, 2
mov edx, 2
jne 0x451e29
mov edx, 0
test esi, 4
mov esi, 4
jne 0x451e3b
mov esi, 0
or ecx, edx
or ecx, esi
push ecx
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push edi
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [edi + 0xd8], eax
mov eax, 0x26
jmp 0x45172d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [edi + 0x18]
mov dword [edi + 0xd8], eax
test edx, edx
je 0x451f3c
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x451ee8
mov eax, 0x26
mov dword [edx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x64]
test eax, eax
je 0x451ed0
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov eax, 0x26
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
movzx edx, byte [edi + 0x15c]
mov eax, edx
and eax, 1
test dl, 2
mov ecx, 2
jne 0x451f03
mov ecx, 0
test dl, 4
mov esi, 4
mov edx, 0x26
push edx
jne 0x451f18
mov esi, 0
or eax, ecx
or eax, esi
push edx
push eax
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push edi
mov eax, 0x26
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, dword [ebp - 0x1c]
cmp eax, 1
jne 0x4516e4
mov eax, edi
call fcn.00453338
or byte [edi + 0x15f], 2
jmp 0x4516fb
mov edx, dword [edi + 0x18]
test edx, edx
je 0x45201c
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x451fc8
mov eax, 0x42
mov dword [edx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x64]
test eax, eax
je 0x451fb0
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov eax, 0x42
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
movzx edx, byte [edi + 0x15c]
mov eax, edx
and eax, 1
test dl, 2
mov ecx, 2
jne 0x451fe3
mov ecx, 0
test dl, 4
mov esi, 4
mov edx, 0x42
push edx
jne 0x451ff8
mov esi, 0
or eax, ecx
or eax, esi
push edx
push eax
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push edi
mov eax, 0x42
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov dword [ebp - 0x28], esi
mov esi, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edi
mov edi, ecx
test eax, eax
jle 0x452063
cmp edi, 0x20000
jae 0x452063
mov edx, dword [ebp - 0x4c]
test edx, edx
je 0x4521ba
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x40]
test ecx, ecx
je 0x452098
push 0
push dword [eax + 0x38]
sub esi, ecx
mov dword [ebp - 0x148], ecx
push eax
call fcn.00439648
mov ecx, dword [ebp - 0x148]
mov dword [ebp - 0x14], eax
add esp, 0xc
test esi, esi
je 0x4520ec
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x38]
jmp 0x4520a1
mov edx, dword [eax + 0x38]
sub esi, edx
je 0x4520ec
xor ecx, ecx
mov dword [eax + 0x3c], edx
test ecx, ecx
je 0x452461
movsx eax, byte [eax + 0x144]
cmp eax, 5
je 0x452428
mov eax, dword [ebx + 0xc]
movsx eax, byte [eax]
mov dword [esp + 0xc], eax
mov edx, ecx
mov ecx, esi
mov eax, dword [ebp - 0x18]
call fcn.00453484
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x452371
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x44]
sub eax, dword [edx + 0x3c]
mov dword [edx + 0x138], eax
cmp edi, 0x20000
jb 0x452134
mov eax, dword [ebp - 0x4c]
test eax, eax
jne 0x452151
mov eax, dword [ebp - 0x18]
movsx edx, byte [eax + 0x144]
cmp edx, 5
je 0x452573
mov esi, dword [ebx + 0xc]
mov edx, dword [ebp - 0x30]
movsx ecx, byte [esi]
mov dword [esp + 0xc], ecx
mov ecx, edi
call fcn.00453484
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x4524bc
xor edi, edi
jmp 0x45213b
mov eax, dword [ebp - 0x4c]
test eax, eax
jne 0x452151
mov eax, dword [ebp - 0x18]
mov esi, dword [eax + 0x3c]
mov eax, dword [eax + 0x138]
mov edx, 1
mov dword [ebp - 0x3c], edx
jmp 0x4521ba
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xac]
cmp edi, 0x6400000
mov esi, edi
mov dword [ebp - 0x14c], 0
jle 0x452176
mov esi, 0x6400000
add eax, 0xffffffff
mov dword [ebp - 0x24], edi
not eax
mov edi, eax
lea edx, [ebp - 0x14c]
push edx
push 0
push esi
call fcn.00431768
add esp, 0xc
test eax, eax
je 0x4521ab
mov dword [ebp - 0x14c], 0
sar esi, 1
and esi, edi
jne 0x452180
jmp 0x4525af
mov edx, dword [ebp - 0x14c]
test edx, edx
je 0x452180
jmp 0x452666
cmp eax, edi
mov edx, eax
jb 0x4521c2
mov edx, edi
mov dword [ebp - 0x158], edx
cmp edx, 8
ja case.0x4521d8.3
mov ecx, dword [edx*4 + 0x4bb838]
jmp ecx
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x4521ff
mov eax, dword [ebp - 0x30]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x18]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov esi, dword [eax + 0x3c]
mov eax, dword [eax + 0x138]
jmp case.0x4521d8.0
mov eax, dword [ebp - 0x144]
test eax, eax
je 0x45222a
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x18]
mov ecx, dword [eax]
mov dword [esi], ecx
mov ecx, dword [edx + 0x3c]
mov esi, dword [eax + 4]
mov dword [ecx + 4], esi
mov esi, dword [edx + 0x3c]
mov eax, dword [edx + 0x138]
jmp case.0x4521d8.0
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax]
mov byte [esi], al
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x3c]
mov esi, dword [ebp - 0x30]
movzx edx, byte [esi + 1]
mov byte [ecx + 1], dl
mov edx, esi
mov ecx, dword [eax + 0x3c]
movzx edx, byte [edx + 2]
mov byte [ecx + 2], dl
mov edx, esi
mov ecx, dword [eax + 0x3c]
movzx edx, byte [edx + 3]
mov byte [ecx + 3], dl
mov ecx, dword [eax + 0x3c]
mov edx, esi
movzx edx, byte [edx + 4]
mov byte [ecx + 4], dl
mov edx, esi
mov ecx, dword [eax + 0x3c]
movzx edx, byte [edx + 5]
mov byte [ecx + 5], dl
mov edx, esi
mov esi, dword [eax + 0x3c]
movzx ecx, byte [edx + 6]
mov byte [esi + 6], cl
mov ecx, dword [eax + 0x3c]
movzx edx, byte [edx + 7]
mov byte [ecx + 7], dl
mov esi, dword [eax + 0x3c]
mov eax, dword [eax + 0x138]
jmp case.0x4521d8.0
mov eax, dword [ebp - 0x144]
test eax, eax
je 0x4522b8
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x18]
mov edx, dword [eax]
mov dword [esi], edx
mov esi, dword [ecx + 0x3c]
mov eax, dword [ecx + 0x138]
jmp case.0x4521d8.0
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax]
mov byte [esi], al
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x3c]
mov esi, dword [ebp - 0x30]
movzx edx, byte [esi + 1]
mov byte [ecx + 1], dl
mov edx, esi
mov esi, dword [eax + 0x3c]
movzx ecx, byte [edx + 2]
mov byte [esi + 2], cl
mov ecx, dword [eax + 0x3c]
movzx edx, byte [edx + 3]
mov byte [ecx + 3], dl
mov esi, dword [eax + 0x3c]
mov eax, dword [eax + 0x138]
jmp case.0x4521d8.0
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x18]
movzx eax, byte [edx]
mov byte [esi], al
mov esi, dword [ecx + 0x3c]
movzx eax, byte [edx + 1]
mov byte [esi + 1], al
mov esi, dword [ecx + 0x3c]
mov eax, dword [ecx + 0x138]
jmp case.0x4521d8.0
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x18]
movzx edx, byte [eax]
mov byte [esi], dl
mov esi, dword [ecx + 0x3c]
mov eax, dword [ecx + 0x138]
jmp case.0x4521d8.0
mov eax, edx
mov edx, dword [ebp - 0x30]
push eax
push edx
push esi
call fcn.004a3b10
add esp, 0xc
mov eax, dword [ebp - 0x18]
mov esi, dword [eax + 0x3c]
mov eax, dword [eax + 0x138]
mov ecx, dword [ebp - 0x158]
mov edx, dword [ebp - 0x18]
add dword [ebp - 0x30], ecx
sub edi, ecx
sub eax, ecx
mov dword [edx + 0x138], eax
add esi, ecx
mov dword [edx + 0x3c], esi
test edi, edi
jg 0x45204c
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x1c]
jmp 0x450678
mov edi, dword [ebp - 0x18]
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x452408
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x4523b3
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x4523a0
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push eax
push eax
movzx esi, byte [edi + 0x15c]
mov ecx, esi
and ecx, 1
test esi, 2
mov edx, 2
jne 0x4523d3
mov edx, 0
test esi, 4
mov esi, 4
jne 0x4523e5
mov esi, 0
or ecx, edx
or ecx, esi
push ecx
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push edi
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, dword [ebp - 0x18]
push esi
push ecx
push eax
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
je 0x452445
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x4520d5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [ebp - 0x18]
mov dword [edx + 0xd8], eax
mov eax, 0x26
mov dword [ebp - 0x14], eax
jmp 0x4520d5
movsx ecx, byte [eax + 0x144]
cmp ecx, 5
je 0x452486
mov eax, dword [ebx + 0xc]
movsx eax, byte [eax]
mov dword [esp + 0xc], eax
mov ecx, esi
mov eax, dword [ebp - 0x18]
call fcn.00453484
jmp 0x4520d2
push esi
push edx
push eax
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
je 0x4524a0
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x4520d5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [ebp - 0x18]
mov dword [edx + 0xd8], eax
mov eax, 0x26
mov dword [ebp - 0x14], eax
jmp 0x4520d5
mov edi, dword [ebp - 0x18]
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x452553
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x4524fe
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x4524eb
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push eax
push eax
movzx esi, byte [edi + 0x15c]
mov ecx, esi
and ecx, 1
test esi, 2
mov edx, 2
jne 0x45251e
mov edx, 0
test esi, 4
mov esi, 4
jne 0x452530
mov esi, 0
or ecx, edx
or ecx, esi
push ecx
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push edi
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x18]
push edi
push eax
push edx
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
je 0x452593
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x452125
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [ebp - 0x18]
mov dword [edx + 0xd8], eax
mov eax, 0x26
mov dword [ebp - 0x14], eax
jmp 0x452125
mov edi, dword [ebp - 0x18]
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x452646
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x4525f1
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x4525de
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push eax
push eax
movzx esi, byte [edi + 0x15c]
mov ecx, esi
and ecx, 1
test esi, 2
mov edx, 2
jne 0x452611
mov edx, 0
test esi, 4
mov esi, 4
jne 0x452623
mov esi, 0
or ecx, edx
or ecx, esi
push ecx
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push edi
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov edi, dword [ebp - 0x24]
test edi, edi
jle 0x4528e4
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x24], edi
xor eax, eax
mov esi, eax
jmp 0x452683
mov edx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x10]
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x3c]
sub edi, esi
cmp ecx, edi
jge 0x452694
mov edi, ecx
mov ecx, dword [ebp - 0xac]
cmp ecx, 2
je 0x4528f0
cmp ecx, 4
je 0x45283f
cmp ecx, 8
jne 0x45273f
mov ecx, edi
test edi, edi
jle 0x4528a4
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x158], edi
mov dword [ebp - 0x20], esi
mov esi, dword [eax]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x148], eax
mov eax, ecx
shr eax, 0x18
mov edi, ecx
and edi, 0xff0000
shr edi, 8
or eax, edi
mov edi, ecx
shl ecx, 0x18
and edi, 0xff00
shl edi, 8
or eax, edi
or eax, ecx
mov dword [edx], eax
mov ecx, esi
shr ecx, 0x18
mov eax, esi
and eax, 0xff0000
shr eax, 8
or ecx, eax
mov eax, esi
and eax, 0xff00
shl eax, 8
or ecx, eax
shl esi, 0x18
or ecx, esi
mov eax, dword [ebp - 0x148]
mov dword [edx + 4], ecx
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff8
add edx, 8
add eax, 8
mov dword [ebp - 0x14], ecx
test ecx, ecx
jg 0x4526cb
jmp 0x452895
cmp ecx, 0x10
jne 0x4528a4
mov ecx, edi
test edi, edi
jle 0x4528a4
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x158], edi
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x20], esi
mov ecx, dword [ebp - 0x148]
mov edi, dword [ecx]
mov eax, dword [ecx + 4]
mov esi, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0xd0], edi
mov edi, ecx
add dword [ebp - 0x148], 0x10
mov dword [ebp - 0xcc], eax
mov eax, ecx
and edi, 0xff0000
shr eax, 0x18
shr edi, 8
or eax, edi
mov edi, ecx
and edi, 0xff00
shl edi, 8
or eax, edi
shl ecx, 0x18
or eax, ecx
mov dword [edx], eax
mov ecx, esi
shr ecx, 0x18
mov eax, esi
and eax, 0xff0000
shr eax, 8
or ecx, eax
mov eax, esi
shl esi, 0x18
and eax, 0xff00
shl eax, 8
or ecx, eax
or ecx, esi
mov dword [edx + 4], ecx
mov ecx, dword [ebp - 0xcc]
mov esi, ecx
shr esi, 0x18
mov eax, ecx
and eax, 0xff0000
shr eax, 8
or esi, eax
mov eax, ecx
shl ecx, 0x18
and eax, 0xff00
shl eax, 8
or esi, eax
or esi, ecx
mov ecx, dword [ebp - 0xd0]
mov dword [edx + 8], esi
mov esi, ecx
shr esi, 0x18
mov eax, ecx
and eax, 0xff0000
shr eax, 8
or esi, eax
mov eax, ecx
shl ecx, 0x18
and eax, 0xff00
shl eax, 8
or esi, eax
or esi, ecx
mov eax, dword [ebp - 0x14]
mov dword [edx + 0xc], esi
add eax, 0xfffffff0
mov dword [ebp - 0x14], eax
add edx, 0x10
test eax, eax
jg 0x452764
jmp 0x452895
mov ecx, edi
test edi, edi
jle 0x4528a4
mov dword [ebp - 0x150], edx
mov dword [ebp - 0x158], edi
mov dword [ebp - 0x20], esi
mov esi, dword [eax]
mov edx, esi
shr edx, 0x18
mov edi, esi
add ecx, 0xfffffffc
add eax, 4
and edi, 0xff0000
shr edi, 8
or edx, edi
mov edi, esi
shl esi, 0x18
and edi, 0xff00
shl edi, 8
or edx, edi
or edx, esi
mov esi, dword [ebp - 0x150]
mov dword [esi], edx
add esi, 4
mov dword [ebp - 0x150], esi
test ecx, ecx
jg 0x452854
mov edi, dword [ebp - 0x158]
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x18]
movsx ecx, byte [ecx + 0x144]
cmp ecx, 5
je 0x452927
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebp - 0x18]
movsx ecx, byte [ecx]
mov dword [esp + 0xc], ecx
mov ecx, edi
call fcn.00453484
test eax, eax
jne 0x4528db
mov edx, dword [ebp - 0x24]
add dword [ebp - 0x10], edi
add esi, edi
cmp esi, edx
jl 0x45267d
mov edx, dword [ebp - 0x14c]
mov dword [ebp - 0x14], eax
push edx
call fcn.004316dc
pop ecx
jmp 0x452125
mov ecx, edi
test edi, edi
jle 0x4528a4
mov dword [ebp - 0x158], edi
mov dword [ebp - 0x20], esi
movzx edi, word [eax]
mov esi, edi
shr esi, 8
and edi, 0xff
shl edi, 8
or esi, edi
mov word [edx], si
add ecx, 0xfffffffe
add edx, 2
add eax, 2
test ecx, ecx
jg 0x4528ff
jmp 0x452895
push edi
push edx
mov edx, dword [ebp - 0x18]
push edx
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
je 0x45293e
xor eax, eax
jmp 0x4528c7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [ebp - 0x18]
mov dword [edx + 0xd8], eax
mov eax, 0x26
jmp 0x4528c7
mov eax, dword [ebp - 0x4c]
test eax, eax
jne 0x452980
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x10]
push eax
push edx
push ecx
call fcn.004a3b10
add esp, 0xc
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x3c]
mov dword [ebp - 0x10], edx
jmp 0x451906
mov eax, dword [ebp - 0xac]
cmp eax, 2
je 0x452b95
cmp eax, 4
je 0x452b2f
cmp eax, 8
jne 0x452a2f
mov edx, dword [ebp - 0x24]
test edx, edx
jle 0x451906
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x1c], edi
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx]
mov edi, dword [ecx + 4]
mov ecx, edi
shr ecx, 0x18
mov esi, edi
add dword [ebp - 0x30], 8
and esi, 0xff0000
shr esi, 8
or ecx, esi
mov esi, edi
and esi, 0xff00
shl esi, 8
or ecx, esi
shl edi, 0x18
or ecx, edi
mov esi, dword [ebp - 0x10]
mov dword [esi], ecx
mov ecx, eax
shr ecx, 0x18
mov edi, eax
add edx, 0xfffffff8
and edi, 0xff0000
shr edi, 8
or ecx, edi
mov edi, eax
shl eax, 0x18
and edi, 0xff00
shl edi, 8
or ecx, edi
or ecx, eax
mov dword [esi + 4], ecx
add esi, 8
mov dword [ebp - 0x10], esi
test edx, edx
jg 0x4529b2
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x3c]
mov dword [ebp - 0x10], edx
jmp 0x451906
cmp eax, 0x10
jne 0x451906
mov eax, dword [ebp - 0x24]
test eax, eax
jle 0x451906
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x1c], edi
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov edi, dword [ecx + 0xc]
mov dword [ebp - 0xcc], eax
mov eax, dword [ecx + 8]
add dword [ebp - 0x30], 0x10
mov ecx, edi
shr ecx, 0x18
mov esi, edi
and esi, 0xff0000
shr esi, 8
or ecx, esi
mov esi, edi
and esi, 0xff00
shl esi, 8
or ecx, esi
mov esi, dword [ebp - 0x10]
shl edi, 0x18
or ecx, edi
mov dword [esi], ecx
mov ecx, eax
shr ecx, 0x18
mov edi, eax
and edi, 0xff0000
shr edi, 8
or ecx, edi
mov edi, eax
shl eax, 0x18
and edi, 0xff00
shl edi, 8
or ecx, edi
or ecx, eax
mov dword [esi + 4], ecx
mov ecx, edx
shr ecx, 0x18
mov eax, edx
and eax, 0xff0000
shr eax, 8
or ecx, eax
mov eax, edx
and eax, 0xff00
shl eax, 8
or ecx, eax
shl edx, 0x18
or ecx, edx
mov edx, dword [ebp - 0xcc]
mov dword [esi + 8], ecx
mov ecx, edx
shr ecx, 0x18
mov eax, edx
and eax, 0xff0000
shr eax, 8
or ecx, eax
mov eax, edx
shl edx, 0x18
and eax, 0xff00
shl eax, 8
or ecx, eax
or ecx, edx
mov eax, dword [ebp - 0x20]
mov dword [esi + 0xc], ecx
add eax, 0xfffffff0
mov dword [ebp - 0x20], eax
add esi, 0x10
mov dword [ebp - 0x10], esi
test eax, eax
jg 0x452a4c
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x3c]
mov dword [ebp - 0x10], edx
jmp 0x451906
mov eax, dword [ebp - 0x24]
test eax, eax
jle 0x451906
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x1c], edi
mov esi, dword [ebp - 0x30]
mov ecx, dword [esi]
mov edx, ecx
shr edx, 0x18
mov edi, ecx
add eax, 0xfffffffc
and edi, 0xff0000
shr edi, 8
or edx, edi
mov edi, ecx
shl ecx, 0x18
and edi, 0xff00
shl edi, 8
or edx, edi
or edx, ecx
add esi, 4
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x30], esi
mov dword [ecx], edx
add ecx, 4
mov dword [ebp - 0x10], ecx
test eax, eax
jg 0x452b40
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x3c]
mov dword [ebp - 0x10], edx
jmp 0x451906
mov eax, dword [ebp - 0x24]
test eax, eax
jle 0x451906
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x28], esi
mov esi, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edi
movzx edi, word [ecx]
mov edx, edi
shr edx, 8
and edi, 0xff
shl edi, 8
or edx, edi
mov word [esi], dx
add eax, 0xfffffffe
add esi, 2
add ecx, 2
test eax, eax
jg 0x452bac
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x3c]
mov dword [ebp - 0x10], edx
jmp 0x451906
mov edx, dword [edi + 0x128]
cmp edx, 0xb
jne 0x451507
movsx edx, byte [edi + 0x144]
cmp edx, 4
je 0x452c07
cmp edx, 5
jne 0x451507
mov edx, dword [edi + 0x38]
neg edx
add edx, dword [ebp - 0x20]
cmp edx, 0x20000
jb 0x451507
jmp 0x4517a4
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x452cb4
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x452c5f
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x452c4c
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push eax
push eax
movzx esi, byte [edi + 0x15c]
mov ecx, esi
and ecx, 1
test esi, 2
mov edx, 2
jne 0x452c7f
mov edx, 0
test esi, 4
mov esi, 4
jne 0x452c91
mov esi, 0
or ecx, edx
or ecx, esi
push ecx
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push edi
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [edi + 0xd8], eax
mov eax, 0x26
jmp 0x45177d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [edi + 0x18]
mov dword [edi + 0xd8], eax
test edx, edx
je 0x452d92
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x452d3e
mov eax, 0x26
mov dword [edx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x64]
test eax, eax
je 0x452d26
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov eax, 0x26
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
movzx edx, byte [edi + 0x15c]
mov eax, edx
and eax, 1
test dl, 2
mov ecx, 2
jne 0x452d59
mov ecx, 0
test dl, 4
mov esi, 4
mov edx, 0x26
push edx
jne 0x452d6e
mov esi, 0
or eax, ecx
or eax, esi
push edx
push eax
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push edi
mov eax, 0x26
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x4c]
sub eax, ecx
mov dword [ebp - 0x20], eax
test edx, edx
je 0x452fc3
mov edx, dword [ebp - 0x30]
mov esi, dword [ebp - 0xac]
lea eax, [esi - 1]
not eax
and dword [ebp - 0x20], eax
cmp esi, 2
je 0x453012
cmp esi, 4
je 0x452f73
cmp esi, 8
jne 0x452e7b
mov eax, dword [ebp - 0x20]
test eax, eax
jle 0x452fd4
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x18], edi
mov esi, dword [edx]
mov eax, dword [edx + 4]
mov dword [ebp - 0x3c], edx
mov edx, eax
shr edx, 0x18
mov edi, eax
and edi, 0xff0000
shr edi, 8
or edx, edi
mov edi, eax
shl eax, 0x18
and edi, 0xff00
shl edi, 8
or edx, edi
or edx, eax
mov dword [ecx], edx
mov edx, esi
shr edx, 0x18
mov eax, esi
and eax, 0xff0000
shr eax, 8
or edx, eax
mov eax, esi
and eax, 0xff00
shl eax, 8
or edx, eax
shl esi, 0x18
or edx, esi
mov eax, dword [ebp - 0x38]
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x3c]
add eax, 0xfffffff8
add ecx, 8
add edx, 8
mov dword [ebp - 0x38], eax
test eax, eax
jg 0x452e07
mov edi, dword [ebp - 0x18]
mov ecx, dword [edi + 0x3c]
jmp 0x452fd4
cmp esi, 0x10
jne 0x452fd4
mov eax, dword [ebp - 0x20]
test eax, eax
jle 0x452fd4
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x18], edi
mov edx, dword [ebp - 0x3c]
mov edi, dword [edx]
mov eax, dword [edx + 4]
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [ebp - 0xcc], edi
mov edi, edx
add dword [ebp - 0x3c], 0x10
mov dword [ebp - 0xd0], eax
mov eax, edx
and edi, 0xff0000
shr eax, 0x18
shr edi, 8
or eax, edi
mov edi, edx
and edi, 0xff00
shl edi, 8
or eax, edi
shl edx, 0x18
or eax, edx
mov dword [ecx], eax
mov edx, esi
shr edx, 0x18
mov eax, esi
and eax, 0xff0000
shr eax, 8
or edx, eax
mov eax, esi
shl esi, 0x18
and eax, 0xff00
shl eax, 8
or edx, eax
or edx, esi
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0xd0]
mov esi, edx
shr esi, 0x18
mov eax, edx
and eax, 0xff0000
shr eax, 8
or esi, eax
mov eax, edx
shl edx, 0x18
and eax, 0xff00
shl eax, 8
or esi, eax
or esi, edx
mov edx, dword [ebp - 0xcc]
mov dword [ecx + 8], esi
mov esi, edx
shr esi, 0x18
mov eax, edx
and eax, 0xff0000
shr eax, 8
or esi, eax
mov eax, edx
shl edx, 0x18
and eax, 0xff00
shl eax, 8
or esi, eax
or esi, edx
mov eax, dword [ebp - 0x14]
mov dword [ecx + 0xc], esi
add eax, 0xfffffff0
mov dword [ebp - 0x14], eax
add ecx, 0x10
test eax, eax
jg 0x452e98
mov edi, dword [ebp - 0x18]
mov ecx, dword [edi + 0x3c]
jmp 0x452fd4
mov eax, dword [ebp - 0x20]
test eax, eax
jle 0x452fd4
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x18], edi
mov esi, dword [edx]
mov ecx, esi
shr ecx, 0x18
mov edi, esi
add eax, 0xfffffffc
add edx, 4
and edi, 0xff0000
shr edi, 8
or ecx, edi
mov edi, esi
shl esi, 0x18
and edi, 0xff00
shl edi, 8
or ecx, edi
or ecx, esi
mov esi, dword [ebp - 0x10]
mov dword [esi], ecx
add esi, 4
mov dword [ebp - 0x10], esi
test eax, eax
jg 0x452f80
mov edi, dword [ebp - 0x18]
mov ecx, dword [edi + 0x3c]
jmp 0x452fd4
mov edx, dword [ebp - 0x30]
push eax
push edx
push ecx
call fcn.004a3b10
add esp, 0xc
mov ecx, dword [edi + 0x3c]
mov eax, dword [ebp - 0x20]
add dword [ebp - 0x30], eax
add ecx, eax
mov dword [edi + 0x3c], ecx
mov ecx, dword [ebp - 0x24]
push edi
sub ecx, eax
mov dword [ebp - 0x24], ecx
call fcn.00439a70
pop ecx
test eax, eax
jne 0x453063
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x453047
xor edx, edx
mov byte [ecx + 2], dl
mov ecx, dword [edi + 0x40]
mov byte [ecx + 3], dl
mov ecx, dword [edi + 0x40]
add ecx, 4
mov dword [edi + 0x3c], ecx
jmp 0x451790
mov esi, dword [ebp - 0x20]
test esi, esi
jle 0x452fd4
mov dword [ebp - 0x18], edi
movzx edi, word [edx]
mov eax, edi
shr eax, 8
and edi, 0xff
shl edi, 8
or eax, edi
mov word [ecx], ax
add esi, 0xfffffffe
add ecx, 2
add edx, 2
test esi, esi
jg 0x45301c
mov edi, dword [ebp - 0x18]
mov ecx, dword [edi + 0x3c]
jmp 0x452fd4
mov ecx, dword [edi + 0x38]
xor edx, edx
mov byte [ecx + 2], dl
mov esi, dword [edi + 0x38]
mov byte [esi + 3], dl
mov ecx, dword [edi + 0x38]
add ecx, 4
mov dword [edi + 0x3c], ecx
jmp 0x451790
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x4530f7
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x4530a2
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x45308f
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push eax
push eax
movzx esi, byte [edi + 0x15c]
mov ecx, esi
and ecx, 1
test esi, 2
mov edx, 2
jne 0x4530c2
mov edx, 0
test esi, 4
mov esi, 4
jne 0x4530d4
mov esi, 0
or ecx, edx
or ecx, esi
push ecx
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push edi
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, dword [ebp - 0x3c]
test eax, eax
jne 0x4517b2
jmp 0x451852
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x38]
neg edx
add edx, dword [ebp - 0x20]
cmp edx, 0x20000
jb 0x4514f1
jmp 0x4514f6
mov eax, dword [ebp - 0xa8]
cmp eax, 0x20000
jae 0x45315b
cmp edx, 0xb
jne 0x4514f1
jmp 0x453127
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
or byte [edx + 0x15d], 4
mov dword [edx + 0x40], eax
push 0
push dword [edx + 0x38]
push edx
call fcn.00439648
mov dword [ebp - 0x14], eax
add esp, 0xc
cmp eax, 0xffffffff
je 0x453195
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x44]
mov ecx, dword [edx + 0x3c]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], ecx
jmp 0x451871
mov edi, dword [ebp - 0x18]
mov edx, dword [edi + 0x18]
test edx, edx
je 0x453234
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x4531e0
mov eax, 0x26
mov dword [edx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x64]
test eax, eax
je 0x4531c8
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov eax, 0x26
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
movzx edx, byte [edi + 0x15c]
mov eax, edx
and eax, 1
test dl, 2
mov ecx, 2
jne 0x4531fb
mov ecx, 0
test dl, 4
mov esi, 4
mov edx, 0x26
push edx
jne 0x453210
mov esi, 0
or eax, ecx
or eax, esi
push edx
push eax
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push edi
mov eax, 0x26
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, 1
mov dword [ebp - 0xd4], eax
jmp 0x45062e
mov edi, dword [ebp - 0x18]
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x453300
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x4532ab
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x453298
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push eax
push eax
movzx esi, byte [edi + 0x15c]
mov ecx, esi
and ecx, 1
test esi, 2
mov edx, 2
jne 0x4532cb
mov edx, 0
test esi, 4
mov esi, 4
jne 0x4532dd
mov esi, 0
or ecx, edx
or ecx, esi
push ecx
push 0xffffffffffffffff
push edi
call fcn.00435ec8
add esp, 0x14
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push edi
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
xor eax, eax
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret